Mercurial > emacs
annotate lisp/allout.el @ 59475:279e43932b6f
(Multi-line Indent): Fix previous change.
(Fortran Autofill): Simplify description of fortran-auto-fill-mode.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 11 Jan 2005 22:41:57 +0000 |
parents | 41337cd10189 |
children | aac0a33f5772 7a0245dd1848 e24e2e78deda |
rev | line source |
---|---|
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
1 ;;; allout.el --- extensive outline mode for use alone and with other modes |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3 ;; Copyright (C) 1992, 93, 94, 2001, 02, 2004 Free Software Foundation, Inc. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4 |
49966
4a0a4a66f5b1
Really fix maintainer's e-mail address.
Juanma Barranquero <lekktu@gmail.com>
parents:
49964
diff
changeset
|
5 ;; Author: Ken Manheimer <klm@zope.com> |
4a0a4a66f5b1
Really fix maintainer's e-mail address.
Juanma Barranquero <lekktu@gmail.com>
parents:
49964
diff
changeset
|
6 ;; Maintainer: Ken Manheimer <klm@zope.com> |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
7 ;; Created: Dec 1991 - first release to usenet |
41905 | 8 ;; Keywords: outlines mode wp languages |
3430 | 9 |
10 ;; This file is part of GNU Emacs. | |
11 | |
6736
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
12 ;; GNU Emacs is free software; you can redistribute it and/or modify |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
13 ;; it under the terms of the GNU General Public License as published by |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
14 ;; the Free Software Foundation; either version 2, or (at your option) |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
15 ;; any later version. |
3430 | 16 |
6736
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
17 ;; GNU Emacs is distributed in the hope that it will be useful, |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
20 ;; GNU General Public License for more details. |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
21 |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
22 ;; You should have received a copy of the GNU General Public License |
14169 | 23 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
25 ;; Boston, MA 02111-1307, USA. | |
3430 | 26 |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
27 ;;; Commentary: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
28 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
29 ;; Allout outline mode provides extensive outline formatting and |
29490 | 30 ;; and manipulation beyond standard emacs outline mode. It provides |
31 ;; for structured editing of outlines, as well as navigation and | |
32 ;; exposure. It also provides for syntax-sensitive text like | |
33 ;; programming languages. (For an example, see the allout code | |
34 ;; itself, which is organized in ;; an outline framework.) | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
35 ;; |
29490 | 36 ;; In addition to outline navigation and exposure, allout includes: |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
37 ;; |
29490 | 38 ;; - topic-oriented repositioning, cut, and paste |
39 ;; - integral outline exposure-layout | |
40 ;; - incremental search with dynamic exposure and reconcealment of hidden text | |
41 ;; - automatic topic-number maintenance | |
42 ;; - "Hot-spot" operation, for single-keystroke maneuvering and | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
43 ;; exposure control. (See the `allout-mode' docstring.) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
44 ;; |
29490 | 45 ;; and many other features. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
46 ;; |
29490 | 47 ;; The outline menubar additions provide quick reference to many of |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
48 ;; the features, and see the docstring of the function `allout-init' |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
49 ;; for instructions on priming your Emacs session for automatic |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
50 ;; activation of `allout-mode'. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
51 ;; |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
52 ;; See the docstring of the variables `allout-layout' and |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
53 ;; `allout-auto-activation' for details on automatic activation of |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
54 ;; allout `allout-mode' as a minor mode. (It has changed since allout |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
55 ;; 3.x, for those of you that depend on the old method.) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
56 ;; |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
57 ;; Note - the lines beginning with `;;;_' are outline topic headers. |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
58 ;; Just `ESC-x eval-current-buffer' to give it a whirl. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
59 |
49966
4a0a4a66f5b1
Really fix maintainer's e-mail address.
Juanma Barranquero <lekktu@gmail.com>
parents:
49964
diff
changeset
|
60 ;; Ken Manheimer klm@zope.com |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
61 |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
62 ;;; Code: |
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
63 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
64 ;;;_* Provide |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
65 (provide 'allout) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
66 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
67 ;;;_* USER CUSTOMIZATION VARIABLES: |
21088 | 68 (defgroup allout nil |
69 "Extensive outline mode for use alone and with other modes." | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
70 :prefix "allout-" |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
71 :group 'editing |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
72 :version "21.4") |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
73 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
74 ;;;_ + Layout, Mode, and Topic Header Configuration |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
75 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
76 ;;;_ = allout-auto-activation |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
77 (defcustom allout-auto-activation nil |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
78 "*Regulates auto-activation modality of allout outlines - see `allout-init'. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
79 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
80 Setq-default by `allout-init' to regulate whether or not allout |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
81 outline mode is automatically activated when the buffer-specific |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
82 variable `allout-layout' is non-nil, and whether or not the layout |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
83 dictated by `allout-layout' should be imposed on mode activation. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
84 |
50855
31ce4fcda3d8
(allout-auto-activation, allout-use-mode-specific-leader)
Juanma Barranquero <lekktu@gmail.com>
parents:
49966
diff
changeset
|
85 With value t, auto-mode-activation and auto-layout are enabled. |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
86 \(This also depends on `allout-find-file-hook' being installed in |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
87 `find-file-hook', which is also done by `allout-init'.) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
88 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
89 With value `ask', auto-mode-activation is enabled, and endorsement for |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
90 performing auto-layout is asked of the user each time. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
91 |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
92 With value `activate', only auto-mode-activation is enabled, |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
93 auto-layout is not. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
94 |
50855
31ce4fcda3d8
(allout-auto-activation, allout-use-mode-specific-leader)
Juanma Barranquero <lekktu@gmail.com>
parents:
49966
diff
changeset
|
95 With value nil, neither auto-mode-activation nor auto-layout are |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
96 enabled. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
97 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
98 See the docstring for `allout-init' for the proper interface to |
29490 | 99 this variable." |
100 :type '(choice (const :tag "On" t) | |
101 (const :tag "Ask about layout" "ask") | |
102 (const :tag "Mode only" "activate") | |
103 (const :tag "Off" nil)) | |
104 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
105 ;;;_ = allout-layout |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
106 (defvar allout-layout nil |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
107 "*Layout specification and provisional mode trigger for allout outlines. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
108 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
109 Buffer-specific. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
110 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
111 A list value specifies a default layout for the current buffer, to be |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
112 applied upon activation of `allout-mode'. Any non-nil value will |
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
113 automatically trigger `allout-mode', provided `allout-init' |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
114 has been called to enable it. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
115 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
116 See the docstring for `allout-init' for details on setting up for |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
117 auto-mode-activation, and for `allout-expose-topic' for the format of |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
118 the layout specification. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
119 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
120 You can associate a particular outline layout with a file by setting |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
121 this var via the file's local variables. For example, the following |
11034
27df51bcb4b0
(outline-layout): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
10867
diff
changeset
|
122 lines at the bottom of an Emacs Lisp file: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
123 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
124 ;;;Local variables: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
125 ;;;allout-layout: \(0 : -1 -1 0) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
126 ;;;End: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
127 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
128 will, modulo the above-mentioned conditions, cause the mode to be |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
129 activated when the file is visited, followed by the equivalent of |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
130 `\(allout-expose-topic 0 : -1 -1 0)'. \(This is the layout used for |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
131 the allout.el, itself.) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
132 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
133 Also, allout's mode-specific provisions will make topic prefixes default |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
134 to the comment-start string, if any, of the language of the file. This |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
135 is modulo the setting of `allout-use-mode-specific-leader', which see.") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
136 (make-variable-buffer-local 'allout-layout) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
137 ;;;_ = allout-show-bodies |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
138 (defcustom allout-show-bodies nil |
29490 | 139 "*If non-nil, show entire body when exposing a topic, rather than |
140 just the header." | |
141 :type 'boolean | |
142 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
143 (make-variable-buffer-local 'allout-show-bodies) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
144 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
145 ;;;_ = allout-header-prefix |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
146 (defcustom allout-header-prefix "." |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
147 "*Leading string which helps distinguish topic headers. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
148 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
149 Outline topic header lines are identified by a leading topic |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
150 header prefix, which mostly have the value of this var at their front. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
151 \(Level 1 topics are exceptions. They consist of only a single |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
152 character, which is typically set to the `allout-primary-bullet'. Many |
21088 | 153 outlines start at level 2 to avoid this discrepancy." |
154 :type 'string | |
155 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
156 (make-variable-buffer-local 'allout-header-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
157 ;;;_ = allout-primary-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
158 (defcustom allout-primary-bullet "*" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
159 "Bullet used for top-level outline topics. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
160 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
161 Outline topic header lines are identified by a leading topic header |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
162 prefix, which is concluded by bullets that includes the value of this |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
163 var and the respective allout-*-bullets-string vars. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
164 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
165 The value of an asterisk (`*') provides for backwards compatibility |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
166 with the original Emacs outline mode. See `allout-plain-bullets-string' |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
167 and `allout-distinctive-bullets-string' for the range of available |
21088 | 168 bullets." |
169 :type 'string | |
170 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
171 (make-variable-buffer-local 'allout-primary-bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
172 ;;;_ = allout-plain-bullets-string |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
173 (defcustom allout-plain-bullets-string ".:,;" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
174 "*The bullets normally used in outline topic prefixes. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
175 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
176 See `allout-distinctive-bullets-string' for the other kind of |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
177 bullets. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
178 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
179 DO NOT include the close-square-bracket, `]', as a bullet. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
180 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
181 Outline mode has to be reactivated in order for changes to the value |
21088 | 182 of this var to take effect." |
183 :type 'string | |
184 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
185 (make-variable-buffer-local 'allout-plain-bullets-string) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
186 ;;;_ = allout-distinctive-bullets-string |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
187 (defcustom allout-distinctive-bullets-string "*+-=>([{}&!?#%\"X@$~_\\" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
188 "*Persistent outline header bullets used to distinguish special topics. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
189 |
29490 | 190 These bullets are used to distinguish topics from the run-of-the-mill |
191 ones. They are not used in the standard topic headers created by | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
192 the topic-opening, shifting, and rebulleting \(eg, on topic shift, |
29490 | 193 topic paste, blanket rebulleting) routines, but are offered among the |
194 choices for rebulleting. They are not altered by the above automatic | |
195 rebulleting, so they can be used to characterize topics, eg: | |
196 | |
197 `?' question topics | |
198 `\(' parenthetic comment \(with a matching close paren inside) | |
199 `[' meta-note \(with a matching close ] inside) | |
200 `\"' a quote | |
201 `=' value settings | |
202 `~' \"more or less\" | |
203 | |
204 ... just for example. (`#' typically has a special meaning to the | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
205 software, according to the value of `allout-numbered-bullet'.) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
206 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
207 See `allout-plain-bullets-string' for the selection of |
29490 | 208 alternating bullets. |
209 | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
210 You must run `set-allout-regexp' in order for outline mode to |
29490 | 211 reconcile to changes of this value. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
212 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
213 DO NOT include the close-square-bracket, `]', on either of the bullet |
21088 | 214 strings." |
215 :type 'string | |
216 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
217 (make-variable-buffer-local 'allout-distinctive-bullets-string) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
218 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
219 ;;;_ = allout-use-mode-specific-leader |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
220 (defcustom allout-use-mode-specific-leader t |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
221 "*When non-nil, use mode-specific topic-header prefixes. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
222 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
223 Allout outline mode will use the mode-specific `allout-mode-leaders' |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
224 and/or comment-start string, if any, to lead the topic prefix string, |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
225 so topic headers look like comments in the programming language. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
226 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
227 String values are used as they stand. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
228 |
50855
31ce4fcda3d8
(allout-auto-activation, allout-use-mode-specific-leader)
Juanma Barranquero <lekktu@gmail.com>
parents:
49966
diff
changeset
|
229 Value t means to first check for assoc value in `allout-mode-leaders' |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
230 alist, then use comment-start string, if any, then use default \(`.'). |
29490 | 231 \(See note about use of comment-start strings, below.) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
232 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
233 Set to the symbol for either of `allout-mode-leaders' or |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
234 `comment-start' to use only one of them, respectively. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
235 |
50855
31ce4fcda3d8
(allout-auto-activation, allout-use-mode-specific-leader)
Juanma Barranquero <lekktu@gmail.com>
parents:
49966
diff
changeset
|
236 Value nil means to always use the default \(`.'). |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
237 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
238 comment-start strings that do not end in spaces are tripled, and an |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
239 `_' underscore is tacked on the end, to distinguish them from regular |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
240 comment strings. comment-start strings that do end in spaces are not |
29490 | 241 tripled, but an underscore is substituted for the space. [This |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
242 presumes that the space is for appearance, not comment syntax. You |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
243 can use `allout-mode-leaders' to override this behavior, when |
21088 | 244 incorrect.]" |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
245 :type '(choice (const t) (const nil) string |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
246 (const allout-mode-leaders) |
21088 | 247 (const comment-start)) |
248 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
249 ;;;_ = allout-mode-leaders |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
250 (defvar allout-mode-leaders '() |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
251 "Specific allout-prefix leading strings per major modes. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
252 |
29490 | 253 Entries will be used instead or in lieu of mode-specific |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
254 comment-start strings. See also `allout-use-mode-specific-leader'. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
255 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
256 If you're constructing a string that will comment-out outline |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
257 structuring so it can be included in program code, append an extra |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
258 character, like an \"_\" underscore, to distinguish the lead string |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
259 from regular comments that start at bol.") |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
260 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
261 ;;;_ = allout-old-style-prefixes |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
262 (defcustom allout-old-style-prefixes nil |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
263 "*When non-nil, use only old-and-crusty `outline-mode' `*' topic prefixes. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
264 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
265 Non-nil restricts the topic creation and modification |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
266 functions to asterix-padded prefixes, so they look exactly |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
267 like the original Emacs-outline style prefixes. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
268 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
269 Whatever the setting of this variable, both old and new style prefixes |
21088 | 270 are always respected by the topic maneuvering functions." |
271 :type 'boolean | |
272 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
273 (make-variable-buffer-local 'allout-old-style-prefixes) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
274 ;;;_ = allout-stylish-prefixes - alternating bullets |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
275 (defcustom allout-stylish-prefixes t |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
276 "*Do fancy stuff with topic prefix bullets according to level, etc. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
277 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
278 Non-nil enables topic creation, modification, and repositioning |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
279 functions to vary the topic bullet char (the char that marks the topic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
280 depth) just preceding the start of the topic text) according to level. |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
281 Otherwise, only asterisks (`*') and distinctive bullets are used. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
282 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
283 This is how an outline can look (but sans indentation) with stylish |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
284 prefixes: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
285 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
286 * Top level |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
287 .* A topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
288 . + One level 3 subtopic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
289 . . One level 4 subtopic |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
290 . . A second 4 subtopic |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
291 . + Another level 3 subtopic |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
292 . #1 A numbered level 4 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
293 . #2 Another |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
294 . ! Another level 4 subtopic with a different distinctive bullet |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
295 . #4 And another numbered level 4 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
296 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
297 This would be an outline with stylish prefixes inhibited (but the |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
298 numbered and other distinctive bullets retained): |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
299 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
300 * Top level |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
301 .* A topic |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
302 . * One level 3 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
303 . * One level 4 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
304 . * A second 4 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
305 . * Another level 3 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
306 . #1 A numbered level 4 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
307 . #2 Another |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
308 . ! Another level 4 subtopic with a different distinctive bullet |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
309 . #4 And another numbered level 4 subtopic |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
310 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
311 Stylish and constant prefixes (as well as old-style prefixes) are |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
312 always respected by the topic maneuvering functions, regardless of |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
313 this variable setting. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
314 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
315 The setting of this var is not relevant when `allout-old-style-prefixes' |
21088 | 316 is non-nil." |
317 :type 'boolean | |
318 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
319 (make-variable-buffer-local 'allout-stylish-prefixes) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
320 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
321 ;;;_ = allout-numbered-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
322 (defcustom allout-numbered-bullet "#" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
323 "*String designating bullet of topics that have auto-numbering; nil for none. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
324 |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
325 Topics having this bullet have automatic maintenance of a sibling |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
326 sequence-number tacked on, just after the bullet. Conventionally set |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
327 to \"#\", you can set it to a bullet of your choice. A nil value |
21088 | 328 disables numbering maintenance." |
329 :type '(choice (const nil) string) | |
330 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
331 (make-variable-buffer-local 'allout-numbered-bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
332 ;;;_ = allout-file-xref-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
333 (defcustom allout-file-xref-bullet "@" |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
334 "*Bullet signifying file cross-references, for `allout-resolve-xref'. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
335 |
29490 | 336 Set this var to the bullet you want to use for file cross-references." |
21088 | 337 :type '(choice (const nil) string) |
338 :group 'allout) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
339 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
340 ;;;_ = allout-presentation-padding |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
341 (defcustom allout-presentation-padding 2 |
29490 | 342 "*Presentation-format white-space padding factor, for greater indent." |
343 :type 'integer | |
344 :group 'allout) | |
345 | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
346 (make-variable-buffer-local 'allout-presentation-padding) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
347 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
348 ;;;_ = allout-abbreviate-flattened-numbering |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
349 (defcustom allout-abbreviate-flattened-numbering nil |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
350 "*If non-nil, `allout-flatten-exposed-to-buffer' abbreviates topic |
29490 | 351 numbers to minimal amount with some context. Otherwise, entire |
352 numbers are always used." | |
353 :type 'boolean | |
354 :group 'allout) | |
355 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
356 ;;;_ + LaTeX formatting |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
357 ;;;_ - allout-number-pages |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
358 (defcustom allout-number-pages nil |
21088 | 359 "*Non-nil turns on page numbering for LaTeX formatting of an outline." |
360 :type 'boolean | |
361 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
362 ;;;_ - allout-label-style |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
363 (defcustom allout-label-style "\\large\\bf" |
21088 | 364 "*Font and size of labels for LaTeX formatting of an outline." |
365 :type 'string | |
366 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
367 ;;;_ - allout-head-line-style |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
368 (defcustom allout-head-line-style "\\large\\sl " |
21088 | 369 "*Font and size of entries for LaTeX formatting of an outline." |
370 :type 'string | |
371 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
372 ;;;_ - allout-body-line-style |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
373 (defcustom allout-body-line-style " " |
21088 | 374 "*Font and size of entries for LaTeX formatting of an outline." |
375 :type 'string | |
376 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
377 ;;;_ - allout-title-style |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
378 (defcustom allout-title-style "\\Large\\bf" |
21088 | 379 "*Font and size of titles for LaTeX formatting of an outline." |
380 :type 'string | |
381 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
382 ;;;_ - allout-title |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
383 (defcustom allout-title '(or buffer-file-name (current-buffer-name)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
384 "*Expression to be evaluated to determine the title for LaTeX |
21088 | 385 formatted copy." |
386 :type 'sexp | |
387 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
388 ;;;_ - allout-line-skip |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
389 (defcustom allout-line-skip ".05cm" |
21088 | 390 "*Space between lines for LaTeX formatting of an outline." |
391 :type 'string | |
392 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
393 ;;;_ - allout-indent |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
394 (defcustom allout-indent ".3cm" |
21088 | 395 "*LaTeX formatted depth-indent spacing." |
396 :type 'string | |
397 :group 'allout) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
398 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
399 ;;;_ + Miscellaneous customization |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
400 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
401 ;;;_ = allout-command-prefix |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
402 (defcustom allout-command-prefix "\C-c" |
29490 | 403 "*Key sequence to be used as prefix for outline mode command key bindings." |
404 :type 'string | |
405 :group 'allout) | |
406 | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
407 ;;;_ = allout-keybindings-list |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
408 ;;; You have to reactivate allout-mode - `(allout-mode t)' - to |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
409 ;;; institute changes to this var. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
410 (defvar allout-keybindings-list () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
411 "*List of `allout-mode' key / function bindings, for `allout-mode-map'. |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
412 |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
413 String or vector key will be prefaced with `allout-command-prefix', |
29490 | 414 unless optional third, non-nil element is present.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
415 (setq allout-keybindings-list |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
416 '( |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
417 ; Motion commands: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
418 ("\C-n" allout-next-visible-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
419 ("\C-p" allout-previous-visible-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
420 ("\C-u" allout-up-current-level) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
421 ("\C-f" allout-forward-current-level) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
422 ("\C-b" allout-backward-current-level) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
423 ("\C-a" allout-beginning-of-current-entry) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
424 ("\C-e" allout-end-of-current-entry) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
425 ; Exposure commands: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
426 ("\C-i" allout-show-children) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
427 ("\C-s" allout-show-current-subtree) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
428 ("\C-h" allout-hide-current-subtree) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
429 ("\C-o" allout-show-current-entry) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
430 ("!" allout-show-all) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
431 ; Alteration commands: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
432 (" " allout-open-sibtopic) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
433 ("." allout-open-subtopic) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
434 ("," allout-open-supertopic) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
435 ("'" allout-shift-in) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
436 (">" allout-shift-in) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
437 ("<" allout-shift-out) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
438 ("\C-m" allout-rebullet-topic) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
439 ("*" allout-rebullet-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
440 ("#" allout-number-siblings) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
441 ("\C-k" allout-kill-line t) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
442 ("\C-y" allout-yank t) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
443 ("\M-y" allout-yank-pop t) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
444 ("\C-k" allout-kill-topic) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
445 ; Miscellaneous commands: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
446 ;([?\C-\ ] allout-mark-topic) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
447 ("@" allout-resolve-xref) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
448 ("=c" allout-copy-exposed-to-buffer) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
449 ("=i" allout-indented-exposed-to-buffer) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
450 ("=t" allout-latexify-exposed) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
451 ("=p" allout-flatten-exposed-to-buffer))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
452 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
453 ;;;_ = allout-isearch-dynamic-expose |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
454 (defcustom allout-isearch-dynamic-expose t |
29490 | 455 "*Non-nil enable dynamic exposure of hidden incremental-search |
456 targets as they're encountered." | |
21088 | 457 :type 'boolean |
458 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
459 (make-variable-buffer-local 'allout-isearch-dynamic-expose) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
460 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
461 ;;;_ = allout-use-hanging-indents |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
462 (defcustom allout-use-hanging-indents t |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
463 "*If non-nil, topic body text auto-indent defaults to indent of the header. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
464 Ie, it is indented to be just past the header prefix. This is |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
465 relevant mostly for use with indented-text-mode, or other situations |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
466 where auto-fill occurs. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
467 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
468 \[This feature no longer depends in any way on the `filladapt.el' |
21088 | 469 lisp-archive package.\]" |
470 :type 'boolean | |
471 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
472 (make-variable-buffer-local 'allout-use-hanging-indents) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
473 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
474 ;;;_ = allout-reindent-bodies |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
475 (defcustom allout-reindent-bodies (if allout-use-hanging-indents |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
476 'text) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
477 "*Non-nil enables auto-adjust of topic body hanging indent with depth shifts. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
478 |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
479 When active, topic body lines that are indented even with or beyond |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
480 their topic header are reindented to correspond with depth shifts of |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
481 the header. |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
482 |
50855
31ce4fcda3d8
(allout-auto-activation, allout-use-mode-specific-leader)
Juanma Barranquero <lekktu@gmail.com>
parents:
49966
diff
changeset
|
483 A value of t enables reindent in non-programming-code buffers, ie |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
484 those that do not have the variable `comment-start' set. A value of |
21088 | 485 `force' enables reindent whether or not `comment-start' is set." |
486 :type '(choice (const nil) (const t) (const text) (const force)) | |
487 :group 'allout) | |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
488 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
489 (make-variable-buffer-local 'allout-reindent-bodies) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
490 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
491 ;;;_ = allout-inhibit-protection |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
492 (defcustom allout-inhibit-protection nil |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
493 "*Non-nil disables warnings and confirmation-checks for concealed-text edits. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
494 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
495 Outline mode uses Emacs change-triggered functions to detect unruly |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
496 changes to concealed regions. Set this var non-nil to disable the |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
497 protection, potentially increasing text-entry responsiveness a bit. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
498 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
499 This var takes effect at `allout-mode' activation, so you may have to |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
500 deactivate and then reactivate the mode if you want to toggle the |
21088 | 501 behavior." |
502 :type 'boolean | |
503 :group 'allout) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
504 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
505 ;;;_* CODE - no user customizations below. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
506 |
29490 | 507 ;;;_ #1 Internal Outline Formatting and Configuration |
508 ;;;_ : Version | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
509 ;;;_ = allout-version |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
510 (defvar allout-version |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
511 (let ((rcs-rev "$Revision$")) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
512 (condition-case err |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
513 (save-match-data |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
514 (string-match "Revision: \\([0-9]+\\.[0-9]+\\)" rcs-rev) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
515 (substring rcs-rev (match-beginning 1) (match-end 1))) |
29490 | 516 ('error rcs-rev))) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
517 "Revision number of currently loaded outline package. \(allout.el)") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
518 ;;;_ > allout-version |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
519 (defun allout-version (&optional here) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
520 "Return string describing the loaded outline version." |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
521 (interactive "P") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
522 (let ((msg (concat "Allout Outline Mode v " allout-version))) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
523 (if here (insert msg)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
524 (message "%s" msg) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
525 msg)) |
29490 | 526 ;;;_ : Topic header format |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
527 ;;;_ = allout-regexp |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
528 (defvar allout-regexp "" |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
529 "*Regular expression to match the beginning of a heading line. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
530 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
531 Any line whose beginning matches this regexp is considered a |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
532 heading. This var is set according to the user configuration vars |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
533 by `set-allout-regexp'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
534 (make-variable-buffer-local 'allout-regexp) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
535 ;;;_ = allout-bullets-string |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
536 (defvar allout-bullets-string "" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
537 "A string dictating the valid set of outline topic bullets. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
538 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
539 This var should *not* be set by the user - it is set by `set-allout-regexp', |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
540 and is produced from the elements of `allout-plain-bullets-string' |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
541 and `allout-distinctive-bullets-string'.") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
542 (make-variable-buffer-local 'allout-bullets-string) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
543 ;;;_ = allout-bullets-string-len |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
544 (defvar allout-bullets-string-len 0 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
545 "Length of current buffers' `allout-plain-bullets-string'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
546 (make-variable-buffer-local 'allout-bullets-string-len) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
547 ;;;_ = allout-line-boundary-regexp |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
548 (defvar allout-line-boundary-regexp () |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
549 "`allout-regexp' with outline style beginning-of-line anchor. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
550 |
7639 | 551 \(Ie, C-j, *or* C-m, for prefixes of hidden topics). This is properly |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
552 set when `allout-regexp' is produced by `set-allout-regexp', so |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
553 that (match-beginning 2) and (match-end 2) delimit the prefix.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
554 (make-variable-buffer-local 'allout-line-boundary-regexp) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
555 ;;;_ = allout-bob-regexp |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
556 (defvar allout-bob-regexp () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
557 "Like `allout-line-boundary-regexp', for headers at beginning of buffer. |
29490 | 558 \(match-beginning 2) and \(match-end 2) delimit the prefix.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
559 (make-variable-buffer-local 'allout-bob-regexp) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
560 ;;;_ = allout-header-subtraction |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
561 (defvar allout-header-subtraction (1- (length allout-header-prefix)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
562 "Allout-header prefix length to subtract when computing topic depth.") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
563 (make-variable-buffer-local 'allout-header-subtraction) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
564 ;;;_ = allout-plain-bullets-string-len |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
565 (defvar allout-plain-bullets-string-len (length allout-plain-bullets-string) |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
566 "Length of `allout-plain-bullets-string', updated by `set-allout-regexp'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
567 (make-variable-buffer-local 'allout-plain-bullets-string-len) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
568 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
569 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
570 ;;;_ X allout-reset-header-lead (header-lead) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
571 (defun allout-reset-header-lead (header-lead) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
572 "*Reset the leading string used to identify topic headers." |
3430 | 573 (interactive "sNew lead string: ") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
574 (setq allout-header-prefix header-lead) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
575 (setq allout-header-subtraction (1- (length allout-header-prefix))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
576 (set-allout-regexp)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
577 ;;;_ X allout-lead-with-comment-string (header-lead) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
578 (defun allout-lead-with-comment-string (&optional header-lead) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
579 "*Set the topic-header leading string to specified string. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
580 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
581 Useful when for encapsulating outline structure in programming |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
582 language comments. Returns the leading string." |
3430 | 583 |
584 (interactive "P") | |
585 (if (not (stringp header-lead)) | |
586 (setq header-lead (read-string | |
587 "String prefix for topic headers: "))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
588 (setq allout-reindent-bodies nil) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
589 (allout-reset-header-lead header-lead) |
3430 | 590 header-lead) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
591 ;;;_ > allout-infer-header-lead () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
592 (defun allout-infer-header-lead () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
593 "Determine appropriate `allout-header-prefix'. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
594 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
595 Works according to settings of: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
596 |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
597 `comment-start' |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
598 `allout-header-prefix' (default) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
599 `allout-use-mode-specific-leader' |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
600 and `allout-mode-leaders'. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
601 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
602 Apply this via \(re)activation of `allout-mode', rather than |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
603 invoking it directly." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
604 (let* ((use-leader (and (boundp 'allout-use-mode-specific-leader) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
605 (if (or (stringp allout-use-mode-specific-leader) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
606 (memq allout-use-mode-specific-leader |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
607 '(allout-mode-leaders |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
608 comment-start |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
609 t))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
610 allout-use-mode-specific-leader |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
611 ;; Oops - garbled value, equate with effect of 't: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
612 t))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
613 (leader |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
614 (cond |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
615 ((not use-leader) nil) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
616 ;; Use the explicitly designated leader: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
617 ((stringp use-leader) use-leader) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
618 (t (or (and (memq use-leader '(t allout-mode-leaders)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
619 ;; Get it from outline mode leaders? |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
620 (cdr (assq major-mode allout-mode-leaders))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
621 ;; ... didn't get from allout-mode-leaders... |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
622 (and (memq use-leader '(t comment-start)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
623 comment-start |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
624 ;; Use comment-start, maybe tripled, and with |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
625 ;; underscore: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
626 (concat |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
627 (if (string= " " |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
628 (substring comment-start |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
629 (1- (length comment-start)))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
630 ;; Use comment-start, sans trailing space: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
631 (substring comment-start 0 -1) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
632 (concat comment-start comment-start comment-start)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
633 ;; ... and append underscore, whichever: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
634 "_"))))))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
635 (if (not leader) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
636 nil |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
637 (if (string= leader allout-header-prefix) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
638 nil ; no change, nothing to do. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
639 (setq allout-header-prefix leader) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
640 allout-header-prefix)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
641 ;;;_ > allout-infer-body-reindent () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
642 (defun allout-infer-body-reindent () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
643 "Determine proper setting for `allout-reindent-bodies'. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
644 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
645 Depends on default setting of `allout-reindent-bodies' \(which see) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
646 and presence of setting for `comment-start', to tell whether the |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
647 file is programming code." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
648 (if (and allout-reindent-bodies |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
649 comment-start |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
650 (not (eq 'force allout-reindent-bodies))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
651 (setq allout-reindent-bodies nil))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
652 ;;;_ > set-allout-regexp () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
653 (defun set-allout-regexp () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
654 "Generate proper topic-header regexp form for outline functions. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
655 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
656 Works with respect to `allout-plain-bullets-string' and |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
657 `allout-distinctive-bullets-string'." |
3430 | 658 |
659 (interactive) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
660 ;; Derive allout-bullets-string from user configured components: |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
661 (setq allout-bullets-string "") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
662 (let ((strings (list 'allout-plain-bullets-string |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
663 'allout-distinctive-bullets-string |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
664 'allout-primary-bullet)) |
3430 | 665 cur-string |
666 cur-len | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
667 cur-char |
3430 | 668 cur-char-string |
669 index | |
670 new-string) | |
671 (while strings | |
672 (setq new-string "") (setq index 0) | |
673 (setq cur-len (length (setq cur-string (symbol-value (car strings))))) | |
674 (while (< index cur-len) | |
675 (setq cur-char (aref cur-string index)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
676 (setq allout-bullets-string |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
677 (concat allout-bullets-string |
3430 | 678 (cond |
679 ; Single dash would denote a | |
680 ; sequence, repeated denotes | |
681 ; a dash: | |
682 ((eq cur-char ?-) "--") | |
683 ; literal close-square-bracket | |
684 ; doesn't work right in the | |
685 ; expr, exclude it: | |
686 ((eq cur-char ?\]) "") | |
687 (t (regexp-quote (char-to-string cur-char)))))) | |
688 (setq index (1+ index))) | |
689 (setq strings (cdr strings))) | |
690 ) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
691 ;; Derive next for repeated use in allout-pending-bullet: |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
692 (setq allout-plain-bullets-string-len (length allout-plain-bullets-string)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
693 (setq allout-header-subtraction (1- (length allout-header-prefix))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
694 ;; Produce the new allout-regexp: |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
695 (setq allout-regexp (concat "\\(\\" |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
696 allout-header-prefix |
3430 | 697 "[ \t]*[" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
698 allout-bullets-string |
3430 | 699 "]\\)\\|\\" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
700 allout-primary-bullet |
3430 | 701 "+\\|\^l")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
702 (setq allout-line-boundary-regexp |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
703 (concat "\\([\n\r]\\)\\(" allout-regexp "\\)")) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
704 (setq allout-bob-regexp |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
705 (concat "\\(\\`\\)\\(" allout-regexp "\\)")) |
3430 | 706 ) |
29490 | 707 ;;;_ : Key bindings |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
708 ;;;_ = allout-mode-map |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
709 (defvar allout-mode-map nil "Keybindings for (allout) outline minor mode.") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
710 ;;;_ > produce-allout-mode-map (keymap-alist &optional base-map) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
711 (defun produce-allout-mode-map (keymap-list &optional base-map) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
712 "Produce keymap for use as allout-mode-map, from KEYMAP-LIST. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
713 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
714 Built on top of optional BASE-MAP, or empty sparse map if none specified. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
715 See doc string for allout-keybindings-list for format of binding list." |
29490 | 716 (let ((map (or base-map (make-sparse-keymap))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
717 (pref (list allout-command-prefix))) |
29490 | 718 (mapcar (function |
719 (lambda (cell) | |
720 (let ((add-pref (null (cdr (cdr cell)))) | |
721 (key-suff (list (car cell)))) | |
722 (apply 'define-key | |
723 (list map | |
724 (apply 'concat (if add-pref | |
725 (append pref key-suff) | |
726 key-suff)) | |
727 (car (cdr cell))))))) | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
728 keymap-list) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
729 map)) |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
730 |
29490 | 731 ;;;_ : Menu bar |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
732 (defvar allout-mode-exposure-menu) |
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
733 (defvar allout-mode-editing-menu) |
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
734 (defvar allout-mode-navigation-menu) |
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
735 (defvar allout-mode-misc-menu) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
736 (defun produce-allout-mode-menubar-entries () |
29490 | 737 (require 'easymenu) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
738 (easy-menu-define allout-mode-exposure-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
739 allout-mode-map |
29490 | 740 "Allout outline exposure menu." |
741 '("Exposure" | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
742 ["Show Entry" allout-show-current-entry t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
743 ["Show Children" allout-show-children t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
744 ["Show Subtree" allout-show-current-subtree t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
745 ["Hide Subtree" allout-hide-current-subtree t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
746 ["Hide Leaves" allout-hide-current-leaves t] |
29490 | 747 "----" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
748 ["Show All" allout-show-all t])) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
749 (easy-menu-define allout-mode-editing-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
750 allout-mode-map |
29490 | 751 "Allout outline editing menu." |
752 '("Headings" | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
753 ["Open Sibling" allout-open-sibtopic t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
754 ["Open Subtopic" allout-open-subtopic t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
755 ["Open Supertopic" allout-open-supertopic t] |
29490 | 756 "----" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
757 ["Shift Topic In" allout-shift-in t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
758 ["Shift Topic Out" allout-shift-out t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
759 ["Rebullet Topic" allout-rebullet-topic t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
760 ["Rebullet Heading" allout-rebullet-current-heading t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
761 ["Number Siblings" allout-number-siblings t])) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
762 (easy-menu-define allout-mode-navigation-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
763 allout-mode-map |
29490 | 764 "Allout outline navigation menu." |
765 '("Navigation" | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
766 ["Next Visible Heading" allout-next-visible-heading t] |
29490 | 767 ["Previous Visible Heading" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
768 allout-previous-visible-heading t] |
29490 | 769 "----" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
770 ["Up Level" allout-up-current-level t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
771 ["Forward Current Level" allout-forward-current-level t] |
29490 | 772 ["Backward Current Level" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
773 allout-backward-current-level t] |
29490 | 774 "----" |
775 ["Beginning of Entry" | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
776 allout-beginning-of-current-entry t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
777 ["End of Entry" allout-end-of-current-entry t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
778 ["End of Subtree" allout-end-of-current-subtree t])) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
779 (easy-menu-define allout-mode-misc-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
780 allout-mode-map |
29490 | 781 "Allout outlines miscellaneous bindings." |
782 '("Misc" | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
783 ["Version" allout-version t] |
29490 | 784 "----" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
785 ["Duplicate Exposed" allout-copy-exposed-to-buffer t] |
29490 | 786 ["Duplicate Exposed, numbered" |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
787 allout-flatten-exposed-to-buffer t] |
29490 | 788 ["Duplicate Exposed, indented" |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
789 allout-indented-exposed-to-buffer t] |
29490 | 790 "----" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
791 ["Set Header Lead" allout-reset-header-lead t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
792 ["Set New Exposure" allout-expose-topic t]))) |
29490 | 793 ;;;_ : Mode-Specific Variable Maintenance Utilities |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
794 ;;;_ = allout-mode-prior-settings |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
795 (defvar allout-mode-prior-settings nil |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
796 "Internal `allout-mode' use; settings to be resumed on mode deactivation.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
797 (make-variable-buffer-local 'allout-mode-prior-settings) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
798 ;;;_ > allout-resumptions (name &optional value) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
799 (defun allout-resumptions (name &optional value) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
800 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
801 "Registers or resumes settings over `allout-mode' activation/deactivation. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
802 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
803 First arg is NAME of variable affected. Optional second arg is list |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
804 containing allout-mode-specific VALUE to be imposed on named |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
805 variable, and to be registered. (It's a list so you can specify |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
806 registrations of null values.) If no value is specified, the |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
807 registered value is returned (encapsulated in the list, so the caller |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
808 can distinguish nil vs no value), and the registration is popped |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
809 from the list." |
3430 | 810 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
811 (let ((on-list (assq name allout-mode-prior-settings)) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
812 prior-capsule ; By `capsule' i mean a list |
3430 | 813 ; containing a value, so we can |
814 ; distinguish nil from no value. | |
815 ) | |
816 | |
817 (if value | |
818 | |
819 ;; Registering: | |
820 (progn | |
821 (if on-list | |
822 nil ; Already preserved prior value - don't mess with it. | |
823 ;; Register the old value, or nil if previously unbound: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
824 (setq allout-mode-prior-settings |
3430 | 825 (cons (list name |
826 (if (boundp name) (list (symbol-value name)))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
827 allout-mode-prior-settings))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
828 ; And impose the new value, locally: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
829 (progn (make-local-variable name) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
830 (set name (car value)))) |
3430 | 831 |
832 ;; Relinquishing: | |
833 (if (not on-list) | |
834 | |
835 ;; Oops, not registered - leave it be: | |
836 nil | |
837 | |
838 ;; Some registration: | |
839 ; reestablish it: | |
840 (setq prior-capsule (car (cdr on-list))) | |
841 (if prior-capsule | |
842 (set name (car prior-capsule)) ; Some prior value - reestablish it. | |
843 (makunbound name)) ; Previously unbound - demolish var. | |
844 ; Remove registration: | |
845 (let (rebuild) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
846 (while allout-mode-prior-settings |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
847 (if (not (eq (car allout-mode-prior-settings) |
3430 | 848 on-list)) |
849 (setq rebuild | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
850 (cons (car allout-mode-prior-settings) |
3430 | 851 rebuild))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
852 (setq allout-mode-prior-settings |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
853 (cdr allout-mode-prior-settings))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
854 (setq allout-mode-prior-settings rebuild))))) |
3430 | 855 ) |
29490 | 856 ;;;_ : Mode-specific incidentals |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
857 ;;;_ = allout-during-write-cue nil |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
858 (defvar allout-during-write-cue nil |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
859 "Used to inhibit outline change-protection during file write. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
860 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
861 See also `allout-post-command-business', `allout-write-file-hook', |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
862 `allout-before-change-protect', and `allout-post-command-business' |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
863 functions.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
864 ;;;_ = allout-pre-was-isearching nil |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
865 (defvar allout-pre-was-isearching nil |
29490 | 866 "Cue for isearch-dynamic-exposure mechanism, implemented in |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
867 allout-pre- and -post-command-hooks.") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
868 (make-variable-buffer-local 'allout-pre-was-isearching) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
869 ;;;_ = allout-isearch-prior-pos nil |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
870 (defvar allout-isearch-prior-pos nil |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
871 "Cue for isearch-dynamic-exposure tracking, used by allout-isearch-expose.") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
872 (make-variable-buffer-local 'allout-isearch-prior-pos) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
873 ;;;_ = allout-isearch-did-quit |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
874 (defvar allout-isearch-did-quit nil |
29490 | 875 "Distinguishes isearch conclusion and cancellation. |
876 | |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
877 Maintained by `allout-isearch-abort' \(which is wrapped around the real |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
878 isearch-abort), and monitored by `allout-isearch-expose' for action.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
879 (make-variable-buffer-local 'allout-isearch-did-quit) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
880 ;;;_ = allout-override-protect nil |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
881 (defvar allout-override-protect nil |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
882 "Used in `allout-mode' for regulate of concealed-text protection mechanism. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
883 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
884 Allout outline mode regulates alteration of concealed text to protect |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
885 against inadvertent, unnoticed changes. This is for use by specific, |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
886 native outline functions to temporarily override that protection. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
887 It's automatically reset to nil after every buffer modification.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
888 (make-variable-buffer-local 'allout-override-protect) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
889 ;;;_ > allout-unprotected (expr) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
890 (defmacro allout-unprotected (expr) |
50855
31ce4fcda3d8
(allout-auto-activation, allout-use-mode-specific-leader)
Juanma Barranquero <lekktu@gmail.com>
parents:
49966
diff
changeset
|
891 "Evaluate EXPRESSION with `allout-override-protect' let-bound t." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
892 `(let ((allout-override-protect t)) |
29490 | 893 ,expr)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
894 ;;;_ = allout-undo-aggregation |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
895 (defvar allout-undo-aggregation 30 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
896 "Amount of successive self-insert actions to bunch together per undo. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
897 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
898 This is purely a kludge variable, regulating the compensation for a bug in |
29490 | 899 the way that before-change-functions and undo interact.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
900 (make-variable-buffer-local 'allout-undo-aggregation) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
901 ;;;_ = file-var-bug hack |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
902 (defvar allout-v18/19-file-var-hack nil |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
903 "Horrible hack used to prevent invalid multiple triggering of outline |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
904 mode from prop-line file-var activation. Used by `allout-mode' function |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
905 to track repeats.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
906 ;;;_ > allout-write-file-hook () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
907 (defun allout-write-file-hook () |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
908 "In `allout-mode', run as a `write-contents-functions' activity. |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
909 |
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
910 Currently just sets `allout-during-write-cue', so outline change-protection |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
911 knows to keep inactive during file write." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
912 (setq allout-during-write-cue t) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
913 nil) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
914 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
915 ;;;_ #2 Mode activation |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
916 ;;;_ = allout-mode |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
917 (defvar allout-mode () "Allout outline mode minor-mode flag.") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
918 (make-variable-buffer-local 'allout-mode) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
919 ;;;_ > allout-mode-p () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
920 (defmacro allout-mode-p () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
921 "Return t if `allout-mode' is active in current buffer." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
922 'allout-mode) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
923 ;;;_ = allout-explicitly-deactivated |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
924 (defvar allout-explicitly-deactivated nil |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
925 "Non-nil if `allout-mode' was last deliberately deactivated. |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
926 So `allout-post-command-business' should not reactivate it...") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
927 (make-variable-buffer-local 'allout-explicitly-deactivated) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
928 ;;;_ > allout-init (&optional mode) |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
929 ;;;###autoload |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
930 (defun allout-init (&optional mode) |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
931 "Prime `allout-mode' to enable/disable auto-activation, wrt `allout-layout'. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
932 |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
933 MODE is one of the following symbols: |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
934 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
935 - nil \(or no argument) deactivate auto-activation/layout; |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
936 - `activate', enable auto-activation only; |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
937 - `ask', enable auto-activation, and enable auto-layout but with |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
938 confirmation for layout operation solicited from user each time; |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
939 - `report', just report and return the current auto-activation state; |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
940 - anything else \(eg, t) for auto-activation and auto-layout, without |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
941 any confirmation check. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
942 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
943 Use this function to setup your Emacs session for automatic activation |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
944 of allout outline mode, contingent to the buffer-specific setting of |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
945 the `allout-layout' variable. (See `allout-layout' and |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
946 `allout-expose-topic' docstrings for more details on auto layout). |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
947 |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
948 `allout-init' works by setting up (or removing) |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
949 `allout-find-file-hook' in `find-file-hook', and giving |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
950 `allout-auto-activation' a suitable setting. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
951 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
952 To prime your Emacs session for full auto-outline operation, include |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
953 the following two lines in your Emacs init file: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
954 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
955 \(require 'allout) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
956 \(allout-init t)" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
957 |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
958 (interactive |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
959 (let ((m (completing-read |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
960 (concat "Select outline auto setup mode " |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
961 "(empty for report, ? for options) ") |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
962 '(("nil")("full")("activate")("deactivate") |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
963 ("ask") ("report") ("")) |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
964 nil |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
965 t))) |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
966 (if (string= m "") 'report |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
967 (intern-soft m)))) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
968 (let |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
969 ;; convenience aliases, for consistent ref to respective vars: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
970 ((hook 'allout-find-file-hook) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
971 (curr-mode 'allout-auto-activation)) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
972 |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
973 (cond ((not mode) |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
974 (setq find-file-hook (delq hook find-file-hook)) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
975 (if (interactive-p) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
976 (message "Allout outline mode auto-activation inhibited."))) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
977 ((eq mode 'report) |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
978 (if (memq hook find-file-hook) |
48859
1c806f4edc19
(allout-init): Give report also in case auto-activation was inhibited.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48858
diff
changeset
|
979 ;; Just punt and use the reports from each of the modes: |
1c806f4edc19
(allout-init): Give report also in case auto-activation was inhibited.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48858
diff
changeset
|
980 (allout-init (symbol-value curr-mode)) |
1c806f4edc19
(allout-init): Give report also in case auto-activation was inhibited.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48858
diff
changeset
|
981 (allout-init nil) |
1c806f4edc19
(allout-init): Give report also in case auto-activation was inhibited.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48858
diff
changeset
|
982 (message "Allout outline mode auto-activation inhibited."))) |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
983 (t (add-hook 'find-file-hook hook) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
984 (set curr-mode ; `set', not `setq'! |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
985 (cond ((eq mode 'activate) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
986 (message |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
987 "Outline mode auto-activation enabled.") |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
988 'activate) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
989 ((eq mode 'report) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
990 ;; Return the current mode setting: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
991 (allout-init mode)) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
992 ((eq mode 'ask) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
993 (message |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
994 (concat "Outline mode auto-activation and " |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
995 "-layout \(upon confirmation) enabled.")) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
996 'ask) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
997 ((message |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
998 "Outline mode auto-activation and -layout enabled.") |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
999 'full))))))) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
1000 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1001 ;;;_ > allout-setup-menubar () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1002 (defun allout-setup-menubar () |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
1003 "Populate the current buffer's menubar with `allout-mode' stuff." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1004 (let ((menus (list allout-mode-exposure-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1005 allout-mode-editing-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1006 allout-mode-navigation-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1007 allout-mode-misc-menu)) |
29490 | 1008 cur) |
1009 (while menus | |
1010 (setq cur (car menus) | |
1011 menus (cdr menus)) | |
1012 (easy-menu-add cur)))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1013 ;;;_ > allout-mode (&optional toggle) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1014 ;;;_ : Defun: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1015 (defun allout-mode (&optional toggle) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1016 ;;;_ . Doc string: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1017 "Toggle minor mode for controlling exposure and editing of text outlines. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1018 |
29490 | 1019 Optional arg forces mode to re-initialize iff arg is positive num or |
1020 symbol. Allout outline mode always runs as a minor mode. | |
1021 | |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
1022 Allout outline mode provides extensive outline oriented formatting and |
29490 | 1023 manipulation. It enables structural editing of outlines, as well as |
1024 navigation and exposure. It also is specifically aimed at | |
1025 accommodating syntax-sensitive text like programming languages. \(For | |
1026 an example, see the allout code itself, which is organized as an allout | |
1027 outline.) | |
1028 | |
1029 In addition to outline navigation and exposure, allout includes: | |
1030 | |
1031 - topic-oriented repositioning, cut, and paste | |
1032 - integral outline exposure-layout | |
1033 - incremental search with dynamic exposure and reconcealment of hidden text | |
1034 - automatic topic-number maintenance | |
1035 - \"Hot-spot\" operation, for single-keystroke maneuvering and | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1036 exposure control. \(See the allout-mode docstring.) |
29490 | 1037 |
1038 and many other features. | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1039 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1040 Below is a description of the bindings, and then explanation of |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1041 special `allout-mode' features and terminology. See also the outline |
29490 | 1042 menubar additions for quick reference to many of the features, and see |
54458
a0176bcc103f
(allout-mode): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
54223
diff
changeset
|
1043 the docstring of the function `allout-init' for instructions on |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1044 priming your Emacs session for automatic activation of `allout-mode'. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1045 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1046 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1047 The bindings are dictated by the `allout-keybindings-list' and |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1048 `allout-command-prefix' variables. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1049 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1050 Navigation: Exposure Control: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1051 ---------- ---------------- |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1052 C-c C-n allout-next-visible-heading | C-c C-h allout-hide-current-subtree |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1053 C-c C-p allout-previous-visible-heading | C-c C-i allout-show-children |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1054 C-c C-u allout-up-current-level | C-c C-s allout-show-current-subtree |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1055 C-c C-f allout-forward-current-level | C-c C-o allout-show-current-entry |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1056 C-c C-b allout-backward-current-level | ^U C-c C-s allout-show-all |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1057 C-c C-e allout-end-of-current-entry | allout-hide-current-leaves |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1058 C-c C-a allout-beginning-of-current-entry, alternately, goes to hot-spot |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1059 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1060 Topic Header Production: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1061 ----------------------- |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1062 C-c<SP> allout-open-sibtopic Create a new sibling after current topic. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1063 C-c . allout-open-subtopic ... an offspring of current topic. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1064 C-c , allout-open-supertopic ... a sibling of the current topic's parent. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1065 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1066 Topic Level and Prefix Adjustment: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1067 --------------------------------- |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1068 C-c > allout-shift-in Shift current topic and all offspring deeper. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1069 C-c < allout-shift-out ... less deep. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1070 C-c<CR> allout-rebullet-topic Reconcile bullets of topic and its offspring |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1071 - distinctive bullets are not changed, others |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1072 alternated according to nesting depth. |
52861 | 1073 C-c * allout-rebullet-current-heading Prompt for alternate bullet for |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1074 current topic. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1075 C-c # allout-number-siblings Number bullets of topic and siblings - the |
3430 | 1076 offspring are not affected. With repeat |
1077 count, revoke numbering. | |
1078 | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1079 Topic-oriented Killing and Yanking: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1080 ---------------------------------- |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1081 C-c C-k allout-kill-topic Kill current topic, including offspring. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1082 C-k allout-kill-line Like kill-line, but reconciles numbering, etc. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1083 C-y allout-yank Yank, adjusting depth of yanked topic to |
3430 | 1084 depth of heading if yanking into bare topic |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1085 heading (ie, prefix sans text). |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1086 M-y allout-yank-pop Is to allout-yank as yank-pop is to yank |
3430 | 1087 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1088 Misc commands: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1089 ------------- |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1090 M-x outlineify-sticky Activate outline mode for current buffer, |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1091 and establish a default file-var setting |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1092 for `allout-layout'. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1093 C-c C-SPC allout-mark-topic |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1094 C-c = c allout-copy-exposed-to-buffer |
29490 | 1095 Duplicate outline, sans concealed text, to |
1096 buffer with name derived from derived from | |
1097 that of current buffer - \"*XXX exposed*\". | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1098 C-c = p allout-flatten-exposed-to-buffer |
29490 | 1099 Like above 'copy-exposed', but convert topic |
1100 prefixes to section.subsection... numeric | |
1101 format. | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1102 ESC ESC (allout-init t) Setup Emacs session for outline mode |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1103 auto-activation. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1104 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1105 HOT-SPOT Operation |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1106 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1107 Hot-spot operation provides a means for easy, single-keystroke outline |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1108 navigation and exposure control. |
3430 | 1109 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1110 \\<allout-mode-map> |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1111 When the text cursor is positioned directly on the bullet character of |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1112 a topic, regular characters (a to z) invoke the commands of the |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1113 corresponding allout-mode keymap control chars. For example, \"f\" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1114 would invoke the command typically bound to \"C-c C-f\" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1115 \(\\[allout-forward-current-level] `allout-forward-current-level'). |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1116 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1117 Thus, by positioning the cursor on a topic bullet, you can execute |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1118 the outline navigation and manipulation commands with a single |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1119 keystroke. Non-literal chars never get this special translation, so |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1120 you can use them to get away from the hot-spot, and back to normal |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1121 operation. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1122 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1123 Note that the command `allout-beginning-of-current-entry' \(\\[allout-beginning-of-current-entry]\) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1124 will move to the hot-spot when the cursor is already located at the |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1125 beginning of the current entry, so you can simply hit \\[allout-beginning-of-current-entry] |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1126 twice in a row to get to the hot-spot. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1127 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1128 Terminology |
3430 | 1129 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1130 Topic hierarchy constituents - TOPICS and SUBTOPICS: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1131 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1132 TOPIC: A basic, coherent component of an Emacs outline. It can |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1133 contain other topics, and it can be subsumed by other topics, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1134 CURRENT topic: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1135 The visible topic most immediately containing the cursor. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1136 DEPTH: The degree of nesting of a topic; it increases with |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1137 containment. Also called the: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1138 LEVEL: The same as DEPTH. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1139 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1140 ANCESTORS: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1141 The topics that contain a topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1142 PARENT: A topic's immediate ancestor. It has a depth one less than |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1143 the topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1144 OFFSPRING: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1145 The topics contained by a topic; |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1146 SUBTOPIC: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1147 An immediate offspring of a topic; |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1148 CHILDREN: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1149 The immediate offspring of a topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1150 SIBLINGS: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1151 Topics having the same parent and depth. |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1152 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1153 Topic text constituents: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1154 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1155 HEADER: The first line of a topic, include the topic PREFIX and header |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1156 text. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1157 PREFIX: The leading text of a topic which which distinguishes it from |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1158 normal text. It has a strict form, which consists of a |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1159 prefix-lead string, padding, and a bullet. The bullet may be |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1160 followed by a number, indicating the ordinal number of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1161 topic among its siblings, a space, and then the header text. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1162 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1163 The relative length of the PREFIX determines the nesting depth |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1164 of the topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1165 PREFIX-LEAD: |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1166 The string at the beginning of a topic prefix, normally a `.'. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1167 It can be customized by changing the setting of |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1168 `allout-header-prefix' and then reinitializing `allout-mode'. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1169 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1170 By setting the prefix-lead to the comment-string of a |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
1171 programming language, you can embed outline structuring in |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1172 program code without interfering with the language processing |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1173 of that code. See `allout-use-mode-specific-leader' |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1174 docstring for more detail. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1175 PREFIX-PADDING: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1176 Spaces or asterisks which separate the prefix-lead and the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1177 bullet, according to the depth of the topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1178 BULLET: A character at the end of the topic prefix, it must be one of |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1179 the characters listed on `allout-plain-bullets-string' or |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1180 `allout-distinctive-bullets-string'. (See the documentation |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1181 for these variables for more details.) The default choice of |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1182 bullet when generating varies in a cycle with the depth of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1183 topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1184 ENTRY: The text contained in a topic before any offspring. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1185 BODY: Same as ENTRY. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1186 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1187 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1188 EXPOSURE: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1189 The state of a topic which determines the on-screen visibility |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1190 of its offspring and contained text. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1191 CONCEALED: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1192 Topics and entry text whose display is inhibited. Contiguous |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1193 units of concealed text is represented by `...' ellipses. |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1194 (Ref the `selective-display' var.) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1195 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1196 Concealed topics are effectively collapsed within an ancestor. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1197 CLOSED: A topic whose immediate offspring and body-text is concealed. |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1198 OPEN: A topic that is not closed, though its offspring or body may be." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1199 ;;;_ . Code |
3430 | 1200 (interactive "P") |
1201 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1202 (let* ((active (and (not (equal major-mode 'outline)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1203 (allout-mode-p))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1204 ; Massage universal-arg `toggle' val: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1205 (toggle (and toggle |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1206 (or (and (listp toggle)(car toggle)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1207 toggle))) |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
1208 ; Activation specifically demanded? |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1209 (explicit-activation (or |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1210 ;; |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1211 (and toggle |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1212 (or (symbolp toggle) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1213 (and (natnump toggle) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1214 (not (zerop toggle))))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1215 ;; allout-mode already called once during this complex command? |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1216 (same-complex-command (eq allout-v18/19-file-var-hack |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1217 (car command-history))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1218 do-layout |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1219 ) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1220 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1221 ; See comments below re v19.18,.19 bug. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1222 (setq allout-v18/19-file-var-hack (car command-history)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1223 |
3430 | 1224 (cond |
1225 | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1226 ;; Provision for v19.18, 19.19 bug - |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1227 ;; Emacs v 19.18, 19.19 file-var code invokes prop-line-designated |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1228 ;; modes twice when file is visited. We have to avoid toggling mode |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1229 ;; off on second invocation, so we detect it as best we can, and |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1230 ;; skip everything. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1231 ((and same-complex-command ; Still in same complex command |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
1232 ; as last time `allout-mode' invoked. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1233 active ; Already activated. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1234 (not explicit-activation) ; Prop-line file-vars don't have args. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1235 (string-match "^19.1[89]" ; Bug only known to be in v19.18 and |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1236 emacs-version)); 19.19. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1237 t) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1238 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1239 ;; Deactivation: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1240 ((and (not explicit-activation) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1241 (or active toggle)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1242 ; Activation not explicitly |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1243 ; requested, and either in |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1244 ; active state or *de*activation |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1245 ; specifically requested: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1246 (setq allout-explicitly-deactivated t) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1247 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1248 (if allout-old-style-prefixes |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1249 (progn |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1250 (allout-resumptions 'allout-primary-bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1251 (allout-resumptions 'allout-old-style-prefixes))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1252 (allout-resumptions 'selective-display) |
29490 | 1253 (if (and (boundp 'before-change-functions) before-change-functions) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1254 (allout-resumptions 'before-change-functions)) |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
1255 (setq write-contents-functions |
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
1256 (delq 'allout-write-file-hook |
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
1257 write-contents-functions)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1258 (allout-resumptions 'paragraph-start) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1259 (allout-resumptions 'paragraph-separate) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1260 (allout-resumptions (if (string-match "^18" emacs-version) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1261 'auto-fill-hook |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1262 'auto-fill-function)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1263 (allout-resumptions 'allout-former-auto-filler) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1264 (setq allout-mode nil)) |
3430 | 1265 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1266 ;; Activation: |
3430 | 1267 ((not active) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1268 (setq allout-explicitly-deactivated nil) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1269 (if allout-old-style-prefixes |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1270 (progn ; Inhibit all the fancy formatting: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1271 (allout-resumptions 'allout-primary-bullet '("*")) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1272 (allout-resumptions 'allout-old-style-prefixes '(())))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1273 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1274 (allout-infer-header-lead) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1275 (allout-infer-body-reindent) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1276 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1277 (set-allout-regexp) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1278 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1279 ; Produce map from current version |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1280 ; of allout-keybindings-list: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1281 (if (boundp 'minor-mode-map-alist) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1282 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1283 (progn ; V19, and maybe lucid and |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1284 ; epoch, minor-mode key bindings: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1285 (setq allout-mode-map |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1286 (produce-allout-mode-map allout-keybindings-list)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1287 (produce-allout-mode-menubar-entries) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1288 (fset 'allout-mode-map allout-mode-map) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1289 ; Include on minor-mode-map-alist, |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1290 ; if not already there: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1291 (if (not (member '(allout-mode . allout-mode-map) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1292 minor-mode-map-alist)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1293 (setq minor-mode-map-alist |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1294 (cons '(allout-mode . allout-mode-map) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1295 minor-mode-map-alist)))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1296 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1297 ; and add them: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1298 (use-local-map (produce-allout-mode-map allout-keybindings-list |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1299 (current-local-map))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1300 ) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1301 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1302 ; selective-display is the |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1303 ; Emacs conditional exposure |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1304 ; mechanism: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1305 (allout-resumptions 'selective-display '(t)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1306 (if allout-inhibit-protection |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1307 t |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1308 (allout-resumptions 'before-change-functions |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1309 '(allout-before-change-protect))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1310 (add-hook 'pre-command-hook 'allout-pre-command-business) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1311 (add-hook 'post-command-hook 'allout-post-command-business) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1312 ; Temporarily set by any outline |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1313 ; functions that can be trusted to |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1314 ; deal properly with concealed text. |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
1315 (add-hook 'write-contents-functions 'allout-write-file-hook) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1316 ; Custom auto-fill func, to support |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1317 ; respect for topic headline, |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1318 ; hanging-indents, etc: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1319 (let* ((fill-func-var (if (string-match "^18" emacs-version) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1320 'auto-fill-hook |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1321 'auto-fill-function)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1322 (fill-func (symbol-value fill-func-var))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1323 ;; Register prevailing fill func for use by allout-auto-fill: |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1324 (allout-resumptions 'allout-former-auto-filler (list fill-func)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1325 ;; Register allout-auto-fill to be used if filling is active: |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1326 (allout-resumptions fill-func-var '(allout-auto-fill))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1327 ;; Paragraphs are broken by topic headlines. |
3430 | 1328 (make-local-variable 'paragraph-start) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1329 (allout-resumptions 'paragraph-start |
29490 | 1330 (list (concat paragraph-start "\\|^\\(" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1331 allout-regexp "\\)"))) |
3430 | 1332 (make-local-variable 'paragraph-separate) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1333 (allout-resumptions 'paragraph-separate |
29490 | 1334 (list (concat paragraph-separate "\\|^\\(" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1335 allout-regexp "\\)"))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1336 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1337 (or (assq 'allout-mode minor-mode-alist) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1338 (setq minor-mode-alist |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
1339 (cons '(allout-mode " Allout") minor-mode-alist))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1340 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1341 (allout-setup-menubar) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1342 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1343 (if allout-layout |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1344 (setq do-layout t)) |
3430 | 1345 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1346 (if (and allout-isearch-dynamic-expose |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1347 (not (fboundp 'allout-real-isearch-abort))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1348 (allout-enwrap-isearch)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1349 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1350 (run-hooks 'allout-mode-hook) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1351 (setq allout-mode t)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1352 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1353 ;; Reactivation: |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1354 ((setq do-layout t) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1355 (allout-infer-body-reindent)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1356 ) ; cond |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1357 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1358 (if (and do-layout |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1359 allout-auto-activation |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1360 (listp allout-layout) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1361 (and (not (eq allout-auto-activation 'activate)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1362 (if (eq allout-auto-activation 'ask) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1363 (if (y-or-n-p (format "Expose %s with layout '%s'? " |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1364 (buffer-name) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1365 allout-layout)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1366 t |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1367 (message "Skipped %s layout." (buffer-name)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1368 nil) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1369 t))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1370 (save-excursion |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1371 (message "Adjusting '%s' exposure..." (buffer-name)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1372 (goto-char 0) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1373 (allout-this-or-next-heading) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1374 (condition-case err |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1375 (progn |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1376 (apply 'allout-expose-topic (list allout-layout)) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1377 (message "Adjusting '%s' exposure... done." (buffer-name))) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1378 ;; Problem applying exposure - notify user, but don't |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1379 ;; interrupt, eg, file visit: |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1380 (error (message "%s" (car (cdr err))) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1381 (sit-for 1))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1382 allout-mode |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1383 ) ; let* |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1384 ) ; defun |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1385 ;;;_ > allout-minor-mode |
29490 | 1386 ;;; XXX released verion doesn't do this? |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1387 (defalias 'allout-minor-mode 'allout-mode) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1388 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1389 ;;;_ #3 Internal Position State-Tracking - "allout-recent-*" funcs |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1390 ;;; All the basic outline functions that directly do string matches to |
3430 | 1391 ;;; evaluate heading prefix location set the variables |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1392 ;;; `allout-recent-prefix-beginning' and `allout-recent-prefix-end' |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1393 ;;; when successful. Functions starting with `allout-recent-' all |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1394 ;;; use this state, providing the means to avoid redundant searches |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1395 ;;; for just-established data. This optimization can provide |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1396 ;;; significant speed improvement, but it must be employed carefully. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1397 ;;;_ = allout-recent-prefix-beginning |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1398 (defvar allout-recent-prefix-beginning 0 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1399 "Buffer point of the start of the last topic prefix encountered.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1400 (make-variable-buffer-local 'allout-recent-prefix-beginning) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1401 ;;;_ = allout-recent-prefix-end |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1402 (defvar allout-recent-prefix-end 0 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1403 "Buffer point of the end of the last topic prefix encountered.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1404 (make-variable-buffer-local 'allout-recent-prefix-end) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1405 ;;;_ = allout-recent-end-of-subtree |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1406 (defvar allout-recent-end-of-subtree 0 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1407 "Buffer point last returned by `allout-end-of-current-subtree'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1408 (make-variable-buffer-local 'allout-recent-end-of-subtree) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1409 ;;;_ > allout-prefix-data (beg end) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1410 (defmacro allout-prefix-data (beg end) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1411 "Register allout-prefix state data - BEGINNING and END of prefix. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1412 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1413 For reference by `allout-recent' funcs. Returns BEGINNING." |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1414 `(setq allout-recent-prefix-end ,end |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1415 allout-recent-prefix-beginning ,beg)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1416 ;;;_ > allout-recent-depth () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1417 (defmacro allout-recent-depth () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1418 "Return depth of last heading encountered by an outline maneuvering function. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1419 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1420 All outline functions which directly do string matches to assess |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1421 headings set the variables `allout-recent-prefix-beginning' and |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1422 `allout-recent-prefix-end' if successful. This function uses those settings |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1423 to return the current depth." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1424 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1425 '(max 1 (- allout-recent-prefix-end |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1426 allout-recent-prefix-beginning |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1427 allout-header-subtraction))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1428 ;;;_ > allout-recent-prefix () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1429 (defmacro allout-recent-prefix () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1430 "Like `allout-recent-depth', but returns text of last encountered prefix. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1431 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1432 All outline functions which directly do string matches to assess |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1433 headings set the variables `allout-recent-prefix-beginning' and |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1434 `allout-recent-prefix-end' if successful. This function uses those settings |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1435 to return the current depth." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1436 '(buffer-substring allout-recent-prefix-beginning |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1437 allout-recent-prefix-end)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1438 ;;;_ > allout-recent-bullet () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1439 (defmacro allout-recent-bullet () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1440 "Like allout-recent-prefix, but returns bullet of last encountered prefix. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1441 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1442 All outline functions which directly do string matches to assess |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1443 headings set the variables `allout-recent-prefix-beginning' and |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1444 `allout-recent-prefix-end' if successful. This function uses those settings |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1445 to return the current depth of the most recently matched topic." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1446 '(buffer-substring (1- allout-recent-prefix-end) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1447 allout-recent-prefix-end)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1448 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1449 ;;;_ #4 Navigation |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1450 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1451 ;;;_ - Position Assessment |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1452 ;;;_ : Location Predicates |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1453 ;;;_ > allout-on-current-heading-p () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1454 (defun allout-on-current-heading-p () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1455 "Return non-nil if point is on current visible topics' header line. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1456 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1457 Actually, returns prefix beginning point." |
3430 | 1458 (save-excursion |
1459 (beginning-of-line) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1460 (and (looking-at allout-regexp) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1461 (allout-prefix-data (match-beginning 0) (match-end 0))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1462 ;;;_ > allout-on-heading-p () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1463 (defalias 'allout-on-heading-p 'allout-on-current-heading-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1464 ;;;_ > allout-e-o-prefix-p () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1465 (defun allout-e-o-prefix-p () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1466 "True if point is located where current topic prefix ends, heading begins." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1467 (and (save-excursion (beginning-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1468 (looking-at allout-regexp)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1469 (= (point)(save-excursion (allout-end-of-prefix)(point))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1470 ;;;_ > allout-hidden-p () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1471 (defmacro allout-hidden-p () |
3430 | 1472 "True if point is in hidden text." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1473 '(save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1474 (and (re-search-backward "[\n\r]" () t) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1475 (= ?\r (following-char))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1476 ;;;_ > allout-visible-p () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1477 (defmacro allout-visible-p () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1478 "True if point is not in hidden text." |
3430 | 1479 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1480 '(not (allout-hidden-p))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1481 ;;;_ : Location attributes |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1482 ;;;_ > allout-depth () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1483 (defsubst allout-depth () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1484 "Like `allout-current-depth', but respects hidden as well as visible topics." |
29490 | 1485 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1486 (if (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1487 (allout-recent-depth) |
29490 | 1488 (progn |
1489 ;; Oops, no prefix, zero prefix data: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1490 (allout-prefix-data (point)(point)) |
29490 | 1491 ;; ... and return 0: |
1492 0)))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1493 ;;;_ > allout-current-depth () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1494 (defmacro allout-current-depth () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1495 "Return nesting depth of visible topic most immediately containing point." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1496 '(save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1497 (if (allout-back-to-current-heading) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1498 (max 1 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1499 (- allout-recent-prefix-end |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1500 allout-recent-prefix-beginning |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1501 allout-header-subtraction)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1502 0))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1503 ;;;_ > allout-get-current-prefix () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1504 (defun allout-get-current-prefix () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1505 "Topic prefix of the current topic." |
3430 | 1506 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1507 (if (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1508 (allout-recent-prefix)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1509 ;;;_ > allout-get-bullet () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1510 (defun allout-get-bullet () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1511 "Return bullet of containing topic (visible or not)." |
3430 | 1512 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1513 (and (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1514 (allout-recent-bullet)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1515 ;;;_ > allout-current-bullet () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1516 (defun allout-current-bullet () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1517 "Return bullet of current (visible) topic heading, or none if none found." |
3430 | 1518 (condition-case err |
1519 (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1520 (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1521 (buffer-substring (- allout-recent-prefix-end 1) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1522 allout-recent-prefix-end)) |
3430 | 1523 ;; Quick and dirty provision, ostensibly for missing bullet: |
29490 | 1524 ('args-out-of-range nil)) |
3430 | 1525 ) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1526 ;;;_ > allout-get-prefix-bullet (prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1527 (defun allout-get-prefix-bullet (prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1528 "Return the bullet of the header prefix string PREFIX." |
3430 | 1529 ;; Doesn't make sense if we're old-style prefixes, but this just |
1530 ;; oughtn't be called then, so forget about it... | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1531 (if (string-match allout-regexp prefix) |
3430 | 1532 (substring prefix (1- (match-end 0)) (match-end 0)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1533 ;;;_ > allout-sibling-index (&optional depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1534 (defun allout-sibling-index (&optional depth) |
29490 | 1535 "Item number of this prospective topic among its siblings. |
1536 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1537 If optional arg DEPTH is greater than current depth, then we're |
29490 | 1538 opening a new level, and return 0. |
1539 | |
1540 If less than this depth, ascend to that depth and count..." | |
1541 | |
1542 (save-excursion | |
1543 (cond ((and depth (<= depth 0) 0)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1544 ((or (not depth) (= depth (allout-depth))) |
29490 | 1545 (let ((index 1)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1546 (while (allout-previous-sibling (allout-recent-depth) nil) |
29490 | 1547 (setq index (1+ index))) |
1548 index)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1549 ((< depth (allout-recent-depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1550 (allout-ascend-to-depth depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1551 (allout-sibling-index)) |
29490 | 1552 (0)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1553 ;;;_ > allout-topic-flat-index () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1554 (defun allout-topic-flat-index () |
29490 | 1555 "Return a list indicating point's numeric section.subsect.subsubsect... |
1556 Outermost is first." | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1557 (let* ((depth (allout-depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1558 (next-index (allout-sibling-index depth)) |
29490 | 1559 (rev-sibls nil)) |
1560 (while (> next-index 0) | |
1561 (setq rev-sibls (cons next-index rev-sibls)) | |
1562 (setq depth (1- depth)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1563 (setq next-index (allout-sibling-index depth))) |
29490 | 1564 rev-sibls) |
1565 ) | |
3430 | 1566 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1567 ;;;_ - Navigation macros |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1568 ;;;_ > allout-next-heading () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1569 (defsubst allout-next-heading () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1570 "Move to the heading for the topic \(possibly invisible) before this one. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1571 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1572 Returns the location of the heading, or nil if none found." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1573 |
29490 | 1574 (if (and (bobp) (not (eobp))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1575 (forward-char 1)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1576 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1577 (if (re-search-forward allout-line-boundary-regexp nil 0) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1578 (allout-prefix-data ; Got valid location state - set vars: |
29490 | 1579 (goto-char (or (match-beginning 2) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1580 allout-recent-prefix-beginning)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1581 (or (match-end 2) allout-recent-prefix-end)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1582 ;;;_ : allout-this-or-next-heading |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1583 (defun allout-this-or-next-heading () |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1584 "Position cursor on current or next heading." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1585 ;; A throwaway non-macro that is defined after allout-next-heading |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1586 ;; and usable by allout-mode. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1587 (if (not (allout-goto-prefix)) (allout-next-heading))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1588 ;;;_ > allout-previous-heading () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1589 (defmacro allout-previous-heading () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1590 "Move to the prior \(possibly invisible) heading line. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1591 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1592 Return the location of the beginning of the heading, or nil if not found." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1593 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1594 '(if (bobp) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1595 nil |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1596 (allout-goto-prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1597 (if |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1598 ;; searches are unbounded and return nil if failed: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1599 (or (re-search-backward allout-line-boundary-regexp nil 0) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1600 (looking-at allout-bob-regexp)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1601 (progn ; Got valid location state - set vars: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1602 (allout-prefix-data |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1603 (goto-char (or (match-beginning 2) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1604 allout-recent-prefix-beginning)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1605 (or (match-end 2) allout-recent-prefix-end)))))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1606 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1607 ;;;_ - Subtree Charting |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1608 ;;;_ " These routines either produce or assess charts, which are |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1609 ;;; nested lists of the locations of topics within a subtree. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1610 ;;; |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1611 ;;; Use of charts enables efficient navigation of subtrees, by |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1612 ;;; requiring only a single regexp-search based traversal, to scope |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1613 ;;; out the subtopic locations. The chart then serves as the basis |
29490 | 1614 ;;; for assessment or adjustment of the subtree, without redundant |
1615 ;;; traversal of the structure. | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1616 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1617 ;;;_ > allout-chart-subtree (&optional levels orig-depth prev-depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1618 (defun allout-chart-subtree (&optional levels orig-depth prev-depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1619 "Produce a location \"chart\" of subtopics of the containing topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1620 |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
1621 Optional argument LEVELS specifies the depth \(relative to start |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1622 depth) for the chart. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1623 |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
1624 Charts are used to capture outline structure, so that outline altering |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1625 routines need assess the structure only once, and then use the chart |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1626 for their elaborate manipulations. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1627 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1628 Topics are entered in the chart so the last one is at the car. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1629 The entry for each topic consists of an integer indicating the point |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1630 at the beginning of the topic. Charts for offspring consists of a |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1631 list containing, recursively, the charts for the respective subtopics. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1632 The chart for a topics' offspring precedes the entry for the topic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1633 itself. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1634 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1635 \(fn &optional levels)" |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1636 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1637 ;; The other function parameters are for internal recursion, and should |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1638 ;; not be specified by external callers. ORIG-DEPTH is depth of topic at |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1639 ;; starting point, and PREV-DEPTH is depth of prior topic." |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1640 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1641 (let ((original (not orig-depth)) ; `orig-depth' set only in recursion. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1642 chart curr-depth) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1643 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1644 (if original ; Just starting? |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1645 ; Register initial settings and |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1646 ; position to first offspring: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1647 (progn (setq orig-depth (allout-depth)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1648 (or prev-depth (setq prev-depth (1+ orig-depth))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1649 (allout-next-heading))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1650 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1651 ;; Loop over the current levels' siblings. Besides being more |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1652 ;; efficient than tail-recursing over a level, it avoids exceeding |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1653 ;; the typically quite constrained Emacs max-lisp-eval-depth. |
29490 | 1654 ;; |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1655 ;; Probably would speed things up to implement loop-based stack |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1656 ;; operation rather than recursing for lower levels. Bah. |
29490 | 1657 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1658 (while (and (not (eobp)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1659 ; Still within original topic? |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1660 (< orig-depth (setq curr-depth (allout-recent-depth))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1661 (cond ((= prev-depth curr-depth) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1662 ;; Register this one and move on: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1663 (setq chart (cons (point) chart)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1664 (if (and levels (<= levels 1)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1665 ;; At depth limit - skip sublevels: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1666 (or (allout-next-sibling curr-depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1667 ;; or no more siblings - proceed to |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1668 ;; next heading at lesser depth: |
7676
5b8a573e9f69
(outline-chart-subtree): Include outline-next-heading in loop conditions
Richard M. Stallman <rms@gnu.org>
parents:
7639
diff
changeset
|
1669 (while (and (<= curr-depth |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1670 (allout-recent-depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1671 (allout-next-heading)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1672 (allout-next-heading))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1673 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1674 ((and (< prev-depth curr-depth) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1675 (or (not levels) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1676 (> levels 0))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1677 ;; Recurse on deeper level of curr topic: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1678 (setq chart |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1679 (cons (allout-chart-subtree (and levels |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1680 (1- levels)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1681 orig-depth |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1682 curr-depth) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1683 chart)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1684 ;; ... then continue with this one. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1685 ) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1686 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1687 ;; ... else nil if we've ascended back to prev-depth. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1688 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1689 ))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1690 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1691 (if original ; We're at the last sibling on |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1692 ; the original level. Position |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1693 ; to the end of it: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1694 (progn (and (not (eobp)) (forward-char -1)) |
29490 | 1695 (and (memq (preceding-char) '(?\n ?\r)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1696 (memq (aref (buffer-substring (max 1 (- (point) 3)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1697 (point)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1698 1) |
29490 | 1699 '(?\n ?\r)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1700 (forward-char -1)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1701 (setq allout-recent-end-of-subtree (point)))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1702 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1703 chart ; (nreverse chart) not necessary, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1704 ; and maybe not preferable. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1705 )) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1706 ;;;_ > allout-chart-siblings (&optional start end) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1707 (defun allout-chart-siblings (&optional start end) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1708 "Produce a list of locations of this and succeeding sibling topics. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1709 Effectively a top-level chart of siblings. See `allout-chart-subtree' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1710 for an explanation of charts." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1711 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1712 (if (allout-goto-prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1713 (let ((chart (list (point)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1714 (while (allout-next-sibling) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1715 (setq chart (cons (point) chart))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1716 (if chart (setq chart (nreverse chart))))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1717 ;;;_ > allout-chart-to-reveal (chart depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1718 (defun allout-chart-to-reveal (chart depth) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1719 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1720 "Return a flat list of hidden points in subtree CHART, up to DEPTH. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1721 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1722 Note that point can be left at any of the points on chart, or at the |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1723 start point." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1724 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1725 (let (result here) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1726 (while (and (or (eq depth t) (> depth 0)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1727 chart) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1728 (setq here (car chart)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1729 (if (listp here) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1730 (let ((further (allout-chart-to-reveal here (or (eq depth t) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1731 (1- depth))))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1732 ;; We're on the start of a subtree - recurse with it, if there's |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1733 ;; more depth to go: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1734 (if further (setq result (append further result))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1735 (setq chart (cdr chart))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1736 (goto-char here) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1737 (if (= (preceding-char) ?\r) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1738 (setq result (cons here result))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1739 (setq chart (cdr chart)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1740 result)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1741 ;;;_ X allout-chart-spec (chart spec &optional exposing) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1742 ;; (defun allout-chart-spec (chart spec &optional exposing) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1743 ;; "Not yet \(if ever) implemented. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1744 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1745 ;; Produce exposure directives given topic/subtree CHART and an exposure SPEC. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1746 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1747 ;; Exposure spec indicates the locations to be exposed and the prescribed |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1748 ;; exposure status. Optional arg EXPOSING is an integer, with 0 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1749 ;; indicating pending concealment, anything higher indicating depth to |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1750 ;; which subtopic headers should be exposed, and negative numbers |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1751 ;; indicating (negative of) the depth to which subtopic headers and |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1752 ;; bodies should be exposed. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1753 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1754 ;; The produced list can have two types of entries. Bare numbers |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1755 ;; indicate points in the buffer where topic headers that should be |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1756 ;; exposed reside. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1757 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1758 ;; - bare negative numbers indicates that the topic starting at the |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1759 ;; point which is the negative of the number should be opened, |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1760 ;; including their entries. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1761 ;; - bare positive values indicate that this topic header should be |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1762 ;; opened. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1763 ;; - Lists signify the beginning and end points of regions that should |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1764 ;; be flagged, and the flag to employ. (For concealment: `\(\?r\)', and |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1765 ;; exposure:" |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1766 ;; (while spec |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1767 ;; (cond ((listp spec) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1768 ;; ) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1769 ;; ) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1770 ;; (setq spec (cdr spec))) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1771 ;; ) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1772 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1773 ;;;_ - Within Topic |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1774 ;;;_ > allout-goto-prefix () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1775 (defun allout-goto-prefix () |
29490 | 1776 "Put point at beginning of immediately containing outline topic. |
1777 | |
1778 Goes to most immediate subsequent topic if none immediately containing. | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1779 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1780 Not sensitive to topic visibility. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1781 |
46161
29f1f32aee5b
(outline-goto-prefix): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents:
44182
diff
changeset
|
1782 Returns the point at the beginning of the prefix, or nil if none." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1783 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1784 (let (done) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1785 (while (and (not done) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1786 (re-search-backward "[\n\r]" nil 1)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1787 (forward-char 1) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1788 (if (looking-at allout-regexp) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1789 (setq done (allout-prefix-data (match-beginning 0) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1790 (match-end 0))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1791 (forward-char -1))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1792 (if (bobp) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1793 (cond ((looking-at allout-regexp) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1794 (allout-prefix-data (match-beginning 0)(match-end 0))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1795 ((allout-next-heading)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1796 (done)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1797 done))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1798 ;;;_ > allout-end-of-prefix () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1799 (defun allout-end-of-prefix (&optional ignore-decorations) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1800 "Position cursor at beginning of header text. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1801 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1802 If optional IGNORE-DECORATIONS is non-nil, put just after bullet, |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1803 otherwise skip white space between bullet and ensuing text." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1804 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1805 (if (not (allout-goto-prefix)) |
3430 | 1806 nil |
1807 (let ((match-data (match-data))) | |
1808 (goto-char (match-end 0)) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1809 (if ignore-decorations |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1810 t |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1811 (while (looking-at "[0-9]") (forward-char 1)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1812 (if (and (not (eolp)) (looking-at "\\s-")) (forward-char 1))) |
29490 | 1813 (store-match-data match-data)) |
3430 | 1814 ;; Reestablish where we are: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1815 (allout-current-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1816 ;;;_ > allout-current-bullet-pos () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1817 (defun allout-current-bullet-pos () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1818 "Return position of current \(visible) topic's bullet." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1819 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1820 (if (not (allout-current-depth)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1821 nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1822 (1- (match-end 0)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1823 ;;;_ > allout-back-to-current-heading () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1824 (defun allout-back-to-current-heading () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1825 "Move to heading line of current topic, or beginning if already on the line." |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1826 |
3430 | 1827 (beginning-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1828 (prog1 (or (allout-on-current-heading-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1829 (and (re-search-backward (concat "^\\(" allout-regexp "\\)") |
3430 | 1830 nil |
1831 'move) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1832 (allout-prefix-data (match-beginning 1)(match-end 1)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1833 (if (interactive-p) (allout-end-of-prefix)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1834 ;;;_ > allout-back-to-heading () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1835 (defalias 'allout-back-to-heading 'allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1836 ;;;_ > allout-pre-next-preface () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1837 (defun allout-pre-next-preface () |
3430 | 1838 "Skip forward to just before the next heading line. |
1839 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1840 Returns that character position." |
3430 | 1841 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1842 (if (re-search-forward allout-line-boundary-regexp nil 'move) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1843 (prog1 (goto-char (match-beginning 0)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1844 (allout-prefix-data (match-beginning 2)(match-end 2))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1845 ;;;_ > allout-end-of-current-subtree () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1846 (defun allout-end-of-current-subtree () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1847 "Put point at the end of the last leaf in the currently visible topic." |
3430 | 1848 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1849 (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1850 (let ((level (allout-recent-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1851 (allout-next-heading) |
3430 | 1852 (while (and (not (eobp)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1853 (> (allout-recent-depth) level)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1854 (allout-next-heading)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1855 (and (not (eobp)) (forward-char -1)) |
29490 | 1856 (and (memq (preceding-char) '(?\n ?\r)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1857 (memq (aref (buffer-substring (max 1 (- (point) 3)) (point)) 1) |
29490 | 1858 '(?\n ?\r)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1859 (forward-char -1)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1860 (setq allout-recent-end-of-subtree (point)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1861 ;;;_ > allout-beginning-of-current-entry () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1862 (defun allout-beginning-of-current-entry () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1863 "When not already there, position point at beginning of current topic's body. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1864 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1865 If already there, move cursor to bullet for hot-spot operation. |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1866 \(See `allout-mode' doc string for details on hot-spot operation.)" |
3430 | 1867 (interactive) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1868 (let ((start-point (point))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1869 (allout-end-of-prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1870 (if (and (interactive-p) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1871 (= (point) start-point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1872 (goto-char (allout-current-bullet-pos))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1873 ;;;_ > allout-end-of-current-entry () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1874 (defun allout-end-of-current-entry () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1875 "Position the point at the end of the current topics' entry." |
3430 | 1876 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1877 (allout-show-entry) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1878 (prog1 (allout-pre-next-preface) |
3430 | 1879 (if (and (not (bobp))(looking-at "^$")) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1880 (forward-char -1)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1881 ;;;_ > allout-end-of-current-heading () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1882 (defun allout-end-of-current-heading () |
29490 | 1883 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1884 (allout-beginning-of-current-entry) |
29490 | 1885 (forward-line -1) |
1886 (end-of-line)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1887 (defalias 'allout-end-of-heading 'allout-end-of-current-heading) |
3430 | 1888 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1889 ;;;_ - Depth-wise |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1890 ;;;_ > allout-ascend-to-depth (depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1891 (defun allout-ascend-to-depth (depth) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1892 "Ascend to depth DEPTH, returning depth if successful, nil if not." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1893 (if (and (> depth 0)(<= depth (allout-depth))) |
3430 | 1894 (let ((last-good (point))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1895 (while (and (< depth (allout-depth)) |
3430 | 1896 (setq last-good (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1897 (allout-beginning-of-level) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1898 (allout-previous-heading))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1899 (if (= (allout-recent-depth) depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1900 (progn (goto-char allout-recent-prefix-beginning) |
3430 | 1901 depth) |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
1902 (goto-char last-good))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1903 ;;;_ > allout-ascend () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1904 (defun allout-ascend () |
29490 | 1905 "Ascend one level, returning t if successful, nil if not." |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
1906 (if (allout-beginning-of-level) |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
1907 (allout-previous-heading))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1908 ;;;_ > allout-descend-to-depth (depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1909 (defun allout-descend-to-depth (depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1910 "Descend to depth DEPTH within current topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1911 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1912 Returning depth if successful, nil if not." |
3430 | 1913 (let ((start-point (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1914 (start-depth (allout-depth))) |
3430 | 1915 (while |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1916 (and (> (allout-depth) 0) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1917 (not (= depth (allout-recent-depth))) ; ... not there yet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1918 (allout-next-heading) ; ... go further |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1919 (< start-depth (allout-recent-depth)))) ; ... still in topic |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1920 (if (and (> (allout-depth) 0) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1921 (= (allout-recent-depth) depth)) |
3430 | 1922 depth |
1923 (goto-char start-point) | |
1924 nil)) | |
1925 ) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1926 ;;;_ > allout-up-current-level (arg &optional dont-complain) |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
1927 (defun allout-up-current-level (arg &optional dont-complain interactive) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1928 "Move out ARG levels from current visible topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1929 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1930 Positions on heading line of containing topic. Error if unable to |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1931 ascend that far, or nil if unable to ascend but optional arg |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1932 DONT-COMPLAIN is non-nil." |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
1933 (interactive "p\np") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1934 (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1935 (let ((present-level (allout-recent-depth)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1936 (last-good (point)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1937 failed |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1938 return) |
3430 | 1939 ;; Loop for iterating arg: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1940 (while (and (> (allout-recent-depth) 1) |
3430 | 1941 (> arg 0) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1942 (not (bobp)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1943 (not failed)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1944 (setq last-good (point)) |
3430 | 1945 ;; Loop for going back over current or greater depth: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1946 (while (and (not (< (allout-recent-depth) present-level)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1947 (or (allout-previous-visible-heading 1) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1948 (not (setq failed present-level))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1949 (setq present-level (allout-current-depth)) |
3430 | 1950 (setq arg (- arg 1))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1951 (if (or failed |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1952 (> arg 0)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1953 (progn (goto-char last-good) |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
1954 (if interactive (allout-end-of-prefix)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1955 (if (not dont-complain) |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
1956 (error "Can't ascend past outermost level") |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
1957 (if interactive (allout-end-of-prefix)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1958 nil)) |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
1959 (if interactive (allout-end-of-prefix)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1960 allout-recent-prefix-beginning))) |
3430 | 1961 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1962 ;;;_ - Linear |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1963 ;;;_ > allout-next-sibling (&optional depth backward) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1964 (defun allout-next-sibling (&optional depth backward) |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1965 "Like `allout-forward-current-level', but respects invisible topics. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1966 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1967 Traverse at optional DEPTH, or current depth if none specified. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1968 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1969 Go backward if optional arg BACKWARD is non-nil. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1970 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1971 Return depth if successful, nil otherwise." |
3430 | 1972 |
1973 (if (and backward (bobp)) | |
1974 nil | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1975 (let ((start-depth (or depth (allout-depth))) |
3430 | 1976 (start-point (point)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1977 last-depth) |
3430 | 1978 (while (and (not (if backward (bobp) (eobp))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1979 (if backward (allout-previous-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1980 (allout-next-heading)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1981 (> (setq last-depth (allout-recent-depth)) start-depth))) |
3430 | 1982 (if (and (not (eobp)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1983 (and (> (or last-depth (allout-depth)) 0) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1984 (= (allout-recent-depth) start-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1985 allout-recent-prefix-beginning |
3430 | 1986 (goto-char start-point) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1987 (if depth (allout-depth) start-depth) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1988 nil)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1989 ;;;_ > allout-previous-sibling (&optional depth backward) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1990 (defun allout-previous-sibling (&optional depth backward) |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
1991 "Like `allout-forward-current-level', but backwards & respect invisible topics. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1992 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1993 Optional DEPTH specifies depth to traverse, default current depth. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1994 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1995 Optional BACKWARD reverses direction. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1996 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1997 Return depth if successful, nil otherwise." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1998 (allout-next-sibling depth (not backward)) |
3430 | 1999 ) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2000 ;;;_ > allout-snug-back () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2001 (defun allout-snug-back () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2002 "Position cursor at end of previous topic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2003 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2004 Presumes point is at the start of a topic prefix." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2005 (if (or (bobp) (eobp)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2006 nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2007 (forward-char -1)) |
29490 | 2008 (if (or (bobp) (not (memq (preceding-char) '(?\n ?\r)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2009 nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2010 (forward-char -1) |
29490 | 2011 (if (or (bobp) (not (memq (preceding-char) '(?\n ?\r)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2012 (forward-char -1))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2013 (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2014 ;;;_ > allout-beginning-of-level () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2015 (defun allout-beginning-of-level () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2016 "Go back to the first sibling at this level, visible or not." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2017 (allout-end-of-level 'backward)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2018 ;;;_ > allout-end-of-level (&optional backward) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2019 (defun allout-end-of-level (&optional backward) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2020 "Go to the last sibling at this level, visible or not." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2021 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2022 (let ((depth (allout-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2023 (while (allout-previous-sibling depth nil)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2024 (prog1 (allout-recent-depth) |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
2025 (allout-end-of-prefix)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2026 ;;;_ > allout-next-visible-heading (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2027 (defun allout-next-visible-heading (arg) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2028 "Move to the next ARG'th visible heading line, backward if arg is negative. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2029 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2030 Move as far as possible in indicated direction \(beginning or end of |
29490 | 2031 buffer) if headings are exhausted." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2032 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2033 (interactive "p") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2034 (let* ((backward (if (< arg 0) (setq arg (* -1 arg)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2035 (step (if backward -1 1)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2036 (start-point (point)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2037 prev got) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2038 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2039 (while (> arg 0) ; limit condition |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2040 (while (and (not (if backward (bobp)(eobp))) ; boundary condition |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2041 ;; Move, skipping over all those concealed lines: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2042 (< -1 (forward-line step)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2043 (not (setq got (looking-at allout-regexp))))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2044 ;; Register this got, it may be the last: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2045 (if got (setq prev got)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2046 (setq arg (1- arg))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2047 (cond (got ; Last move was to a prefix: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2048 (allout-prefix-data (match-beginning 0) (match-end 0)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2049 (allout-end-of-prefix)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2050 (prev ; Last move wasn't, but prev was: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2051 (allout-prefix-data (match-beginning 0) (match-end 0))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2052 ((not backward) (end-of-line) nil)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2053 ;;;_ > allout-previous-visible-heading (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2054 (defun allout-previous-visible-heading (arg) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2055 "Move to the previous heading line. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2056 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2057 With argument, repeats or can move forward if negative. |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2058 A heading line is one that starts with a `*' (or that `allout-regexp' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2059 matches)." |
3430 | 2060 (interactive "p") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2061 (allout-next-visible-heading (- arg))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2062 ;;;_ > allout-forward-current-level (arg) |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
2063 (defun allout-forward-current-level (arg &optional interactive) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2064 "Position point at the next heading of the same level. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2065 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2066 Takes optional repeat-count, goes backward if count is negative. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2067 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2068 Returns resulting position, else nil if none found." |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
2069 (interactive "p\np") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2070 (let ((start-depth (allout-current-depth)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2071 (start-point (point)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2072 (start-arg arg) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2073 (backward (> 0 arg)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2074 last-depth |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2075 (last-good (point)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2076 at-boundary) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2077 (if (= 0 start-depth) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2078 (error "No siblings, not in a topic...")) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2079 (if backward (setq arg (* -1 arg))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2080 (while (not (or (zerop arg) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2081 at-boundary)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2082 (while (and (not (if backward (bobp) (eobp))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2083 (if backward (allout-previous-visible-heading 1) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2084 (allout-next-visible-heading 1)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2085 (> (setq last-depth (allout-recent-depth)) start-depth))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2086 (if (and last-depth (= last-depth start-depth) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2087 (not (if backward (bobp) (eobp)))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2088 (setq last-good (point) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2089 arg (1- arg)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2090 (setq at-boundary t))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2091 (if (and (not (eobp)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2092 (= arg 0) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2093 (and (> (or last-depth (allout-depth)) 0) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2094 (= (allout-recent-depth) start-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2095 allout-recent-prefix-beginning |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2096 (goto-char last-good) |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
2097 (if (not interactive) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2098 nil |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2099 (allout-end-of-prefix) |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
2100 (error "Hit %s level %d topic, traversed %d of %d requested" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2101 (if backward "first" "last") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2102 (allout-recent-depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2103 (- (abs start-arg) arg) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2104 (abs start-arg)))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2105 ;;;_ > allout-backward-current-level (arg) |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
2106 (defun allout-backward-current-level (arg &optional interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2107 "Inverse of `allout-forward-current-level'." |
57818
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
2108 (interactive "p\np") |
41337cd10189
(allout group): Add :version.
Richard M. Stallman <rms@gnu.org>
parents:
55717
diff
changeset
|
2109 (if interactive |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2110 (let ((current-prefix-arg (* -1 arg))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2111 (call-interactively 'allout-forward-current-level)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2112 (allout-forward-current-level (* -1 arg)))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2113 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2114 ;;;_ #5 Alteration |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2115 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2116 ;;;_ - Fundamental |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2117 ;;;_ > allout-before-change-protect (beg end) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2118 (defun allout-before-change-protect (beg end) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2119 "Outline before-change hook, regulates changes to concealed text. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2120 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2121 Reveal concealed text that would be changed by current command, and |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2122 offer user choice to commit or forego the change. Unchanged text is |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2123 reconcealed. User has option to have changed text reconcealed. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2124 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2125 Undo commands are specially treated - the user is not prompted for |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2126 choice, the undoes are always committed (based on presumption that the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2127 things being undone were already subject to this regulation routine), |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2128 and undoes always leave the changed stuff exposed. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2129 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2130 Changes to concealed regions are ignored while file is being written. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2131 \(This is for the sake of functions that do change the file during |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2132 writes, like crypt and zip modes.) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2133 |
29490 | 2134 Locally bound in outline buffers to `before-change-functions', which |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2135 in Emacs 19 is run before any change to the buffer. |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2136 |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2137 Any functions which set [`this-command' to `undo', or which set] |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2138 `allout-override-protect' non-nil (as does, eg, allout-flag-chars) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2139 are exempt from this restriction." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2140 (if (and (allout-mode-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2141 ; allout-override-protect |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2142 ; set by functions that know what |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2143 ; they're doing, eg outline internals: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2144 (not allout-override-protect) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2145 (not allout-during-write-cue) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2146 (save-match-data ; Preserve operation position state. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2147 ; Both beginning and end chars must |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2148 ; be exposed: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2149 (save-excursion (if (memq this-command '(newline open-line)) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2150 ;; Compensate for stupid Emacs {new, |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2151 ;; open-}line display optimization: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2152 (setq beg (1+ beg) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2153 end (1+ end))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2154 (goto-char beg) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2155 (or (allout-hidden-p) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2156 (and (not (= beg end)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2157 (goto-char end) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2158 (allout-hidden-p)))))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2159 (save-match-data |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2160 (if (equal this-command 'undo) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2161 ;; Allow undo without inhibition. |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2162 ;; - Undoing new and open-line hits stupid Emacs redisplay |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2163 ;; optimization (em 19 cmds.c, ~ line 200). |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2164 ;; - Presumably, undoing what was properly protected when |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2165 ;; done. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2166 ;; - Undo may be users' only recourse in protection faults. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2167 ;; So, expose what getting changed: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2168 (progn (message "Undo! - exposing concealed target...") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2169 (if (allout-hidden-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2170 (allout-show-children)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2171 (message "Undo!")) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2172 (let (response |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2173 (rehide-completely (save-excursion (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2174 (allout-hidden-p))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2175 rehide-place) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2176 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2177 (save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2178 (if (condition-case err |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2179 ;; Condition case to catch keyboard quits during reads. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2180 (progn |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2181 ; Give them a peek where |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2182 (save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2183 (if (eolp) (setq rehide-place |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2184 (allout-goto-prefix))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2185 (allout-show-entry)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2186 ; Present the message, but... |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2187 ; leave the cursor at the location |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2188 ; until they respond: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2189 ; Then interpret the response: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2190 (while |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2191 (progn |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2192 (message (concat "Change inside concealed" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2193 " region - do it? " |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2194 "(n or 'y'/'r'eclose)")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2195 (setq response (read-char)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2196 (not |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2197 (cond ((memq response '(?r ?R)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2198 (setq response 'reclose)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2199 ((memq response '(?y ?Y ? )) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2200 (setq response t)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2201 ((memq response '(?n ?N 127)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2202 (setq response nil) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2203 t) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2204 ((eq response ??) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2205 (message |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2206 "`r' means `yes, then reclose'") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2207 nil) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2208 (t (message "Please answer y, n, or r") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2209 (sit-for 1) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2210 nil))))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2211 response) |
29490 | 2212 ('quit nil)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2213 ; Continue: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2214 (if (eq response 'reclose) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2215 (save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2216 (if rehide-place (goto-char rehide-place)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2217 (if rehide-completely |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2218 (allout-hide-current-entry-completely) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2219 (allout-hide-current-entry))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2220 (if (allout-ascend-to-depth (1- (allout-recent-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2221 (allout-show-children) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2222 (allout-show-to-offshoot))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2223 ; Prevent: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2224 (if rehide-completely |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2225 (save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2226 (if rehide-place (goto-char rehide-place)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2227 (allout-hide-current-entry-completely)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2228 (allout-hide-current-entry)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2229 (error (concat |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2230 "Change within concealed region prevented."))))))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2231 ) ; if |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2232 ) ; defun |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2233 ;;;_ = allout-post-goto-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2234 (defvar allout-post-goto-bullet nil |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2235 "Outline internal var, for `allout-pre-command-business' hot-spot operation. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2236 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2237 When set, tells post-processing to reposition on topic bullet, and |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2238 then unset it. Set by `allout-pre-command-business' when implementing |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2239 hot-spot operation, where literal characters typed over a topic bullet |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2240 are mapped to the command of the corresponding control-key on the |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2241 `allout-mode-map'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2242 (make-variable-buffer-local 'allout-post-goto-bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2243 ;;;_ > allout-post-command-business () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2244 (defun allout-post-command-business () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2245 "Outline `post-command-hook' function. |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2246 |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2247 - Null `allout-override-protect', so it's not left open. |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2248 |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2249 - Implement (and clear) `allout-post-goto-bullet', for hot-spot |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2250 outline commands. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2251 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2252 - Massages buffer-undo-list so successive, standard character self-inserts are |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2253 aggregated. This kludge compensates for lack of undo bunching when |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2254 `before-change-functions' is used." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2255 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2256 ; Apply any external change func: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2257 (if (not (allout-mode-p)) ; In allout-mode. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2258 nil |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2259 (setq allout-override-protect nil) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2260 (if allout-isearch-dynamic-expose |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2261 (allout-isearch-rectification)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2262 (if allout-during-write-cue |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2263 ;; Was used by allout-before-change-protect, done with it now: |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2264 (setq allout-during-write-cue nil)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2265 ;; Undo bunching business: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2266 (if (and (listp buffer-undo-list) ; Undo history being kept. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2267 (equal this-command 'self-insert-command) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2268 (equal last-command 'self-insert-command)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2269 (let* ((prev-stuff (cdr buffer-undo-list)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2270 (before-prev-stuff (cdr (cdr prev-stuff))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2271 cur-cell cur-from cur-to |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2272 prev-cell prev-from prev-to) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2273 (if (and before-prev-stuff ; Goes back far enough to bother, |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2274 (not (car prev-stuff)) ; and break before current, |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2275 (not (car before-prev-stuff)) ; !and break before prev! |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2276 (setq prev-cell (car (cdr prev-stuff))) ; contents now, |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2277 (setq cur-cell (car buffer-undo-list)) ; contents prev. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2278 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2279 ;; cur contents denote a single char insertion: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2280 (numberp (setq cur-from (car cur-cell))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2281 (numberp (setq cur-to (cdr cur-cell))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2282 (= 1 (- cur-to cur-from)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2283 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2284 ;; prev contents denote fewer than aggregate-limit |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2285 ;; insertions: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2286 (numberp (setq prev-from (car prev-cell))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2287 (numberp (setq prev-to (cdr prev-cell))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2288 ; Below threshold: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2289 (> allout-undo-aggregation (- prev-to prev-from))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2290 (setq buffer-undo-list |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2291 (cons (cons prev-from cur-to) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2292 (cdr (cdr (cdr buffer-undo-list)))))))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2293 ;; Implement -post-goto-bullet, if set: (must be after undo business) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2294 (if (and allout-post-goto-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2295 (allout-current-bullet-pos)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2296 (progn (goto-char (allout-current-bullet-pos)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2297 (setq allout-post-goto-bullet nil))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2298 )) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2299 ;;;_ > allout-pre-command-business () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2300 (defun allout-pre-command-business () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2301 "Outline `pre-command-hook' function for outline buffers. |
49962
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
2302 Implements special behavior when cursor is on bullet character. |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
2303 |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
2304 When the cursor is on the bullet character, self-insert characters are |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
2305 reinterpreted as the corresponding control-character in the |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
2306 `allout-mode-map'. The `allout-mode' `post-command-hook' insures that |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
2307 the cursor which has moved as a result of such reinterpretation is |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
2308 positioned on the bullet character of the destination topic. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2309 |
29490 | 2310 The upshot is that you can get easy, single (ie, unmodified) key |
2311 outline maneuvering operations by positioning the cursor on the bullet | |
49962
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
2312 char. When in this mode you can use regular cursor-positioning |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
2313 command/keystrokes to relocate the cursor off of a bullet character to |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
2314 return to regular interpretation of self-insert characters." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2315 (if (not (allout-mode-p)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2316 ;; Shouldn't be invoked if not in allout allout-mode, but just in case: |
29490 | 2317 nil |
2318 ;; Register isearch status: | |
2319 (if (and (boundp 'isearch-mode) isearch-mode) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2320 (setq allout-pre-was-isearching t) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2321 (setq allout-pre-was-isearching nil)) |
29490 | 2322 ;; Hot-spot navigation provisions: |
2323 (if (and (eq this-command 'self-insert-command) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2324 (eq (point)(allout-current-bullet-pos))) |
29490 | 2325 (let* ((this-key-num (cond |
2326 ((numberp last-command-char) | |
2327 last-command-char) | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2328 ;; XXX Only XEmacs has characterp. |
29490 | 2329 ((and (fboundp 'characterp) |
2330 (characterp last-command-char)) | |
2331 (char-to-int last-command-char)) | |
2332 (t 0))) | |
2333 mapped-binding) | |
2334 (if (zerop this-key-num) | |
2335 nil | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2336 ; Map upper-register literals |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2337 ; to lower register: |
29490 | 2338 (if (<= 96 this-key-num) |
2339 (setq this-key-num (- this-key-num 32))) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2340 ; Check if we have a literal: |
29490 | 2341 (if (and (<= 64 this-key-num) |
2342 (>= 96 this-key-num)) | |
2343 (setq mapped-binding | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2344 (lookup-key 'allout-mode-map |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2345 (concat allout-command-prefix |
29490 | 2346 (char-to-string (- this-key-num |
2347 64)))))) | |
2348 (if mapped-binding | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2349 (setq allout-post-goto-bullet t |
29490 | 2350 this-command mapped-binding))))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2351 ;;;_ > allout-find-file-hook () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2352 (defun allout-find-file-hook () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2353 "Activate `allout-mode' when `allout-auto-activation' & `allout-layout' are non-nil. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2354 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2355 See `allout-init' for setup instructions." |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2356 (if (and allout-auto-activation |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2357 (not (allout-mode-p)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2358 allout-layout) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2359 (allout-mode t))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2360 ;;;_ > allout-isearch-rectification |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2361 (defun allout-isearch-rectification () |
29490 | 2362 "Rectify outline exposure before, during, or after isearch. |
2363 | |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2364 Called as part of `allout-post-command-business'." |
29490 | 2365 |
2366 (let ((isearching (and (boundp 'isearch-mode) isearch-mode))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2367 (cond ((and isearching (not allout-pre-was-isearching)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2368 (allout-isearch-expose 'start)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2369 ((and isearching allout-pre-was-isearching) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2370 (allout-isearch-expose 'continue)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2371 ((and (not isearching) allout-pre-was-isearching) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2372 (allout-isearch-expose 'final)) |
29490 | 2373 ;; Not and wasn't isearching: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2374 (t (setq allout-isearch-prior-pos nil) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2375 (setq allout-isearch-did-quit nil))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2376 ;;;_ = allout-isearch-was-font-lock |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2377 (defvar allout-isearch-was-font-lock |
29490 | 2378 (and (boundp 'font-lock-mode) font-lock-mode)) |
36390
495ba6e137c7
(outline-flag-region): Move macro in front of first
Gerd Moellmann <gerd@gnu.org>
parents:
29490
diff
changeset
|
2379 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2380 ;;;_ > allout-flag-region (from to flag) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2381 (defmacro allout-flag-region (from to flag) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2382 "Hide or show lines from FROM to TO, via Emacs selective-display FLAG char. |
36390
495ba6e137c7
(outline-flag-region): Move macro in front of first
Gerd Moellmann <gerd@gnu.org>
parents:
29490
diff
changeset
|
2383 Ie, text following flag C-m \(carriage-return) is hidden until the |
495ba6e137c7
(outline-flag-region): Move macro in front of first
Gerd Moellmann <gerd@gnu.org>
parents:
29490
diff
changeset
|
2384 next C-j (newline) char. |
495ba6e137c7
(outline-flag-region): Move macro in front of first
Gerd Moellmann <gerd@gnu.org>
parents:
29490
diff
changeset
|
2385 |
495ba6e137c7
(outline-flag-region): Move macro in front of first
Gerd Moellmann <gerd@gnu.org>
parents:
29490
diff
changeset
|
2386 Returns the endpoint of the region." |
495ba6e137c7
(outline-flag-region): Move macro in front of first
Gerd Moellmann <gerd@gnu.org>
parents:
29490
diff
changeset
|
2387 `(let ((buffer-read-only nil) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2388 (allout-override-protect t)) |
36390
495ba6e137c7
(outline-flag-region): Move macro in front of first
Gerd Moellmann <gerd@gnu.org>
parents:
29490
diff
changeset
|
2389 (subst-char-in-region ,from ,to |
495ba6e137c7
(outline-flag-region): Move macro in front of first
Gerd Moellmann <gerd@gnu.org>
parents:
29490
diff
changeset
|
2390 (if (= ,flag ?\n) ?\r ?\n) |
495ba6e137c7
(outline-flag-region): Move macro in front of first
Gerd Moellmann <gerd@gnu.org>
parents:
29490
diff
changeset
|
2391 ,flag t))) |
495ba6e137c7
(outline-flag-region): Move macro in front of first
Gerd Moellmann <gerd@gnu.org>
parents:
29490
diff
changeset
|
2392 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2393 ;;;_ > allout-isearch-expose (mode) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2394 (defun allout-isearch-expose (mode) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2395 "MODE is either 'clear, 'start, 'continue, or 'final." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2396 ;; allout-isearch-prior-pos encodes exposure status of prior pos: |
29490 | 2397 ;; (pos was-vis header-pos end-pos) |
2398 ;; pos - point of concern | |
2399 ;; was-vis - t, else 'topic if entire topic was exposed, 'entry otherwise | |
2400 ;; Do reclosure or prior pos, as necessary: | |
2401 (if (eq mode 'start) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2402 (setq allout-isearch-was-font-lock (and (boundp 'font-lock-mode) |
29490 | 2403 font-lock-mode) |
2404 font-lock-mode nil) | |
2405 (if (eq mode 'final) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2406 (setq font-lock-mode allout-isearch-was-font-lock)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2407 (if (and allout-isearch-prior-pos |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2408 (listp allout-isearch-prior-pos)) |
29490 | 2409 ;; Conceal prior peek: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2410 (allout-flag-region (car (cdr allout-isearch-prior-pos)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2411 (car (cdr (cdr allout-isearch-prior-pos))) |
29490 | 2412 ?\r))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2413 (if (allout-visible-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2414 (setq allout-isearch-prior-pos nil) |
29490 | 2415 (if (not (eq mode 'final)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2416 (setq allout-isearch-prior-pos (cons (point) (allout-show-entry))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2417 (if allout-isearch-did-quit |
29490 | 2418 nil |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2419 (setq allout-isearch-prior-pos nil) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2420 (allout-show-children)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2421 (setq allout-isearch-did-quit nil)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2422 ;;;_ > allout-enwrap-isearch () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2423 (defun allout-enwrap-isearch () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2424 "Impose `allout-mode' isearch-abort wrapper for dynamic exposure in isearch. |
29490 | 2425 |
2426 The function checks to ensure that the rebinding is done only once." | |
2427 | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2428 (add-hook 'isearch-mode-end-hook 'allout-isearch-rectification) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2429 (if (fboundp 'allout-real-isearch-abort) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
2430 ;; |
29490 | 2431 nil |
2432 ; Ensure load of isearch-mode: | |
2433 (if (or (and (fboundp 'isearch-mode) | |
2434 (fboundp 'isearch-abort)) | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
2435 (condition-case error |
29490 | 2436 (load-library "isearch-mode") |
2437 ('file-error (message | |
2438 "Skipping isearch-mode provisions - %s '%s'" | |
2439 (car (cdr error)) | |
2440 (car (cdr (cdr error)))) | |
2441 (sit-for 1) | |
2442 ;; Inhibit subsequent tries and return nil: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2443 (setq allout-isearch-dynamic-expose nil)))) |
29490 | 2444 ;; Isearch-mode loaded, encapsulate specific entry points for |
2445 ;; outline dynamic-exposure business: | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
2446 (progn |
29490 | 2447 ;; stash crucial isearch-mode funcs under known, private |
2448 ;; names, then register wrapper functions under the old | |
2449 ;; names, in their stead: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2450 (fset 'allout-real-isearch-abort (symbol-function 'isearch-abort)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2451 (fset 'isearch-abort 'allout-isearch-abort))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2452 ;;;_ > allout-isearch-abort () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2453 (defun allout-isearch-abort () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2454 "Wrapper for `allout-real-isearch-abort' \(which see), to register |
29490 | 2455 actual quits." |
2456 (interactive) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2457 (setq allout-isearch-did-quit nil) |
29490 | 2458 (condition-case what |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2459 (allout-real-isearch-abort) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2460 ('quit (setq allout-isearch-did-quit t) |
29490 | 2461 (signal 'quit nil)))) |
2462 | |
2463 ;;; Prevent unnecessary font-lock while isearching! | |
2464 (defvar isearch-was-font-locking nil) | |
2465 (defun isearch-inhibit-font-lock () | |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
2466 "Inhibit `font-lock-mode' while isearching - for use on `isearch-mode-hook'." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2467 (if (and (allout-mode-p) (boundp 'font-lock-mode) font-lock-mode) |
29490 | 2468 (setq isearch-was-font-locking t |
2469 font-lock-mode nil))) | |
2470 (add-hook 'isearch-mode-hook 'isearch-inhibit-font-lock) | |
2471 (defun isearch-reenable-font-lock () | |
2472 "Reenable font-lock after isearching - for use on isearch-mode-end-hook." | |
2473 (if (and (boundp 'font-lock-mode) font-lock-mode) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2474 (if (and (allout-mode-p) isearch-was-font-locking) |
29490 | 2475 (setq isearch-was-font-locking nil |
2476 font-lock-mode t)))) | |
2477 (add-hook 'isearch-mode-end-hook 'isearch-reenable-font-lock) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2478 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2479 ;;;_ - Topic Format Assessment |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2480 ;;;_ > allout-solicit-alternate-bullet (depth &optional current-bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2481 (defun allout-solicit-alternate-bullet (depth &optional current-bullet) |
3430 | 2482 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2483 "Prompt for and return a bullet char as an alternative to the current one. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2484 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2485 Offer one suitable for current depth DEPTH as default." |
3430 | 2486 |
29490 | 2487 (let* ((default-bullet (or (and (stringp current-bullet) current-bullet) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2488 (allout-bullet-for-depth depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2489 (sans-escapes (regexp-sans-escapes allout-bullets-string)) |
29490 | 2490 choice) |
2491 (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2492 (goto-char (allout-current-bullet-pos)) |
29490 | 2493 (setq choice (solicit-char-in-string |
2494 (format "Select bullet: %s ('%s' default): " | |
2495 sans-escapes | |
2496 default-bullet) | |
2497 sans-escapes | |
2498 t))) | |
2499 (message "") | |
3430 | 2500 (if (string= choice "") default-bullet choice)) |
2501 ) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2502 ;;;_ > allout-distinctive-bullet (bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2503 (defun allout-distinctive-bullet (bullet) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2504 "True if BULLET is one of those on `allout-distinctive-bullets-string'." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2505 (string-match (regexp-quote bullet) allout-distinctive-bullets-string)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2506 ;;;_ > allout-numbered-type-prefix (&optional prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2507 (defun allout-numbered-type-prefix (&optional prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2508 "True if current header prefix bullet is numbered bullet." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2509 (and allout-numbered-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2510 (string= allout-numbered-bullet |
3430 | 2511 (if prefix |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2512 (allout-get-prefix-bullet prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2513 (allout-get-bullet))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2514 ;;;_ > allout-bullet-for-depth (&optional depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2515 (defun allout-bullet-for-depth (&optional depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2516 "Return outline topic bullet suited to optional DEPTH, or current depth." |
3430 | 2517 ;; Find bullet in plain-bullets-string modulo DEPTH. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2518 (if allout-stylish-prefixes |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2519 (char-to-string (aref allout-plain-bullets-string |
3430 | 2520 (% (max 0 (- depth 2)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2521 allout-plain-bullets-string-len))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2522 allout-primary-bullet) |
3430 | 2523 ) |
2524 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2525 ;;;_ - Topic Production |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2526 ;;;_ > allout-make-topic-prefix (&optional prior-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2527 (defun allout-make-topic-prefix (&optional prior-bullet |
3430 | 2528 new |
2529 depth | |
2530 solicit | |
2531 number-control | |
2532 index) | |
2533 ;; Depth null means use current depth, non-null means we're either | |
2534 ;; opening a new topic after current topic, lower or higher, or we're | |
2535 ;; changing level of current topic. | |
2536 ;; Solicit dominates specified bullet-char. | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2537 ;;;_ . Doc string: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2538 "Generate a topic prefix suitable for optional arg DEPTH, or current depth. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2539 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2540 All the arguments are optional. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2541 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2542 PRIOR-BULLET indicates the bullet of the prefix being changed, or |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2543 nil if none. This bullet may be preserved (other options |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2544 notwithstanding) if it is on the `allout-distinctive-bullets-string', |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2545 for instance. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2546 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2547 Second arg NEW indicates that a new topic is being opened after the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2548 topic at point, if non-nil. Default bullet for new topics, eg, may |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2549 be set (contingent to other args) to numbered bullets if previous |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2550 sibling is one. The implication otherwise is that the current topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2551 is being adjusted - shifted or rebulleted - and we don't consider |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2552 bullet or previous sibling. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2553 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2554 Third arg DEPTH forces the topic prefix to that depth, regardless of |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2555 the current topics' depth. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2556 |
29490 | 2557 If SOLICIT is non-nil, then the choice of bullet is solicited from |
2558 user. If it's a character, then that character is offered as the | |
2559 default, otherwise the one suited to the context \(according to | |
2560 distinction or depth) is offered. \(This overrides other options, | |
2561 including, eg, a distinctive PRIOR-BULLET.) If non-nil, then the | |
2562 context-specific bullet is used. | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2563 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2564 Fifth arg, NUMBER-CONTROL, matters only if `allout-numbered-bullet' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2565 is non-nil *and* soliciting was not explicitly invoked. Then |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2566 NUMBER-CONTROL non-nil forces prefix to either numbered or |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2567 denumbered format, depending on the value of the sixth arg, INDEX. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2568 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2569 \(Note that NUMBER-CONTROL does *not* apply to level 1 topics. Sorry...) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2570 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2571 If NUMBER-CONTROL is non-nil and sixth arg INDEX is non-nil then |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2572 the prefix of the topic is forced to be numbered. Non-nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2573 NUMBER-CONTROL and nil INDEX forces non-numbered format on the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2574 bullet. Non-nil NUMBER-CONTROL and non-nil, non-number INDEX means |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2575 that the index for the numbered prefix will be derived, by counting |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2576 siblings back to start of level. If INDEX is a number, then that |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2577 number is used as the index for the numbered prefix (allowing, eg, |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
2578 sequential renumbering to not require this function counting back the |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2579 index for each successive sibling)." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2580 ;;;_ . Code: |
3430 | 2581 ;; The options are ordered in likely frequence of use, most common |
2582 ;; highest, least lowest. Ie, more likely to be doing prefix | |
2583 ;; adjustments than soliciting, and yet more than numbering. | |
2584 ;; Current prefix is least dominant, but most likely to be commonly | |
2585 ;; specified... | |
2586 | |
2587 (let* (body | |
2588 numbering | |
2589 denumbering | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2590 (depth (or depth (allout-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2591 (header-lead allout-header-prefix) |
3430 | 2592 (bullet-char |
2593 | |
2594 ;; Getting value for bullet char is practically the whole job: | |
2595 | |
2596 (cond | |
2597 ; Simplest situation - level 1: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2598 ((<= depth 1) (setq header-lead "") allout-primary-bullet) |
3430 | 2599 ; Simple, too: all asterisks: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2600 (allout-old-style-prefixes |
3430 | 2601 ;; Cheat - make body the whole thing, null out header-lead and |
2602 ;; bullet-char: | |
2603 (setq body (make-string depth | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2604 (string-to-char allout-primary-bullet))) |
3430 | 2605 (setq header-lead "") |
2606 "") | |
2607 | |
2608 ;; (Neither level 1 nor old-style, so we're space padding. | |
2609 ;; Sneak it in the condition of the next case, whatever it is.) | |
2610 | |
2611 ;; Solicitation overrides numbering and other cases: | |
2612 ((progn (setq body (make-string (- depth 2) ?\ )) | |
2613 ;; The actual condition: | |
2614 solicit) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2615 (let* ((got (allout-solicit-alternate-bullet depth solicit))) |
3430 | 2616 ;; Gotta check whether we're numbering and got a numbered bullet: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2617 (setq numbering (and allout-numbered-bullet |
3430 | 2618 (not (and number-control (not index))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2619 (string= got allout-numbered-bullet))) |
3430 | 2620 ;; Now return what we got, regardless: |
2621 got)) | |
2622 | |
2623 ;; Numbering invoked through args: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2624 ((and allout-numbered-bullet number-control) |
3430 | 2625 (if (setq numbering (not (setq denumbering (not index)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2626 allout-numbered-bullet |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2627 (if (and prior-bullet |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2628 (not (string= allout-numbered-bullet |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2629 prior-bullet))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2630 prior-bullet |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2631 (allout-bullet-for-depth depth)))) |
3430 | 2632 |
2633 ;;; Neither soliciting nor controlled numbering ;;; | |
2634 ;;; (may be controlled denumbering, tho) ;;; | |
2635 | |
2636 ;; Check wrt previous sibling: | |
2637 ((and new ; only check for new prefixes | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2638 (<= depth (allout-depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2639 allout-numbered-bullet ; ... & numbering enabled |
3430 | 2640 (not denumbering) |
2641 (let ((sibling-bullet | |
2642 (save-excursion | |
2643 ;; Locate correct sibling: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2644 (or (>= depth (allout-depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2645 (allout-ascend-to-depth depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2646 (allout-get-bullet)))) |
3430 | 2647 (if (and sibling-bullet |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2648 (string= allout-numbered-bullet sibling-bullet)) |
3430 | 2649 (setq numbering sibling-bullet))))) |
2650 | |
2651 ;; Distinctive prior bullet? | |
2652 ((and prior-bullet | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2653 (allout-distinctive-bullet prior-bullet) |
3430 | 2654 ;; Either non-numbered: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2655 (or (not (and allout-numbered-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2656 (string= prior-bullet allout-numbered-bullet))) |
3430 | 2657 ;; or numbered, and not denumbering: |
2658 (setq numbering (not denumbering))) | |
2659 ;; Here 'tis: | |
2660 prior-bullet)) | |
2661 | |
2662 ;; Else, standard bullet per depth: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2663 ((allout-bullet-for-depth depth))))) |
3430 | 2664 |
2665 (concat header-lead | |
2666 body | |
2667 bullet-char | |
2668 (if numbering | |
2669 (format "%d" (cond ((and index (numberp index)) index) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2670 (new (1+ (allout-sibling-index depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2671 ((allout-sibling-index)))))) |
3430 | 2672 ) |
2673 ) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2674 ;;;_ > allout-open-topic (relative-depth &optional before use_sib_bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2675 (defun allout-open-topic (relative-depth &optional before use_sib_bullet) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2676 "Open a new topic at depth RELATIVE-DEPTH. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2677 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2678 New topic is situated after current one, unless optional flag BEFORE |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2679 is non-nil, or unless current line is complete empty (not even |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2680 whitespace), in which case open is done on current line. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2681 |
29490 | 2682 If USE_SIB_BULLET is true, use the bullet of the prior sibling. |
2683 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2684 Nuances: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2685 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2686 - Creation of new topics is with respect to the visible topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2687 containing the cursor, regardless of intervening concealed ones. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2688 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2689 - New headers are generally created after/before the body of a |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2690 topic. However, they are created right at cursor location if the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2691 cursor is on a blank line, even if that breaks the current topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2692 body. This is intentional, to provide a simple means for |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2693 deliberately dividing topic bodies. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2694 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2695 - Double spacing of topic lists is preserved. Also, the first |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2696 level two topic is created double-spaced (and so would be |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2697 subsequent siblings, if that's left intact). Otherwise, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2698 single-spacing is used. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2699 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2700 - Creation of sibling or nested topics is with respect to the topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2701 you're starting from, even when creating backwards. This way you |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2702 can easily create a sibling in front of the current topic without |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
2703 having to go to its preceding sibling, and then open forward |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2704 from there." |
3430 | 2705 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2706 (let* ((depth (+ (allout-current-depth) relative-depth)) |
3430 | 2707 (opening-on-blank (if (looking-at "^\$") |
2708 (not (setq before nil)))) | |
2709 opening-numbered ; Will get while computing ref-topic, below | |
29490 | 2710 ref-depth ; Will get while computing ref-topic, below |
2711 ref-bullet ; Will get while computing ref-topic, next | |
3430 | 2712 (ref-topic (save-excursion |
2713 (cond ((< relative-depth 0) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2714 (allout-ascend-to-depth depth)) |
3430 | 2715 ((>= relative-depth 1) nil) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2716 (t (allout-back-to-current-heading))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2717 (setq ref-depth (allout-recent-depth)) |
29490 | 2718 (setq ref-bullet |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2719 (if (> allout-recent-prefix-end 1) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2720 (allout-recent-bullet) |
29490 | 2721 "")) |
3430 | 2722 (setq opening-numbered |
2723 (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2724 (and allout-numbered-bullet |
3430 | 2725 (or (<= relative-depth 0) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2726 (allout-descend-to-depth depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2727 (if (allout-numbered-type-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2728 allout-numbered-bullet)))) |
3430 | 2729 (point))) |
2730 dbl-space | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2731 doing-beginning) |
3430 | 2732 |
2733 (if (not opening-on-blank) | |
2734 ; Positioning and vertical | |
2735 ; padding - only if not | |
2736 ; opening-on-blank: | |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2737 (progn |
3430 | 2738 (goto-char ref-topic) |
2739 (setq dbl-space ; Determine double space action: | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2740 (or (and (<= relative-depth 0) ; not descending; |
3430 | 2741 (save-excursion |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
2742 ;; at b-o-b or preceded by a blank line? |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2743 (or (> 0 (forward-line -1)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2744 (looking-at "^\\s-*$") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2745 (bobp))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2746 (save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2747 ;; succeeded by a blank line? |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2748 (allout-end-of-current-subtree) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2749 (bolp))) |
3430 | 2750 (and (= ref-depth 1) |
2751 (or before | |
2752 (= depth 1) | |
2753 (save-excursion | |
2754 ;; Don't already have following | |
2755 ;; vertical padding: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2756 (not (allout-pre-next-preface))))))) |
3430 | 2757 |
2758 ; Position to prior heading, | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2759 ; if inserting backwards, and |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2760 ; not going outwards: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2761 (if (and before (>= relative-depth 0)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2762 (progn (allout-back-to-current-heading) |
3430 | 2763 (setq doing-beginning (bobp)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2764 (if (not (bobp)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2765 (allout-previous-heading))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2766 (if (and before (bobp)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2767 (allout-unprotected (open-line 1)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2768 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2769 (if (<= relative-depth 0) |
3430 | 2770 ;; Not going inwards, don't snug up: |
2771 (if doing-beginning | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2772 (allout-unprotected (open-line (if dbl-space 2 1))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2773 (if before |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2774 (progn (end-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2775 (allout-pre-next-preface) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2776 (while (= ?\r (following-char)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2777 (forward-char 1)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2778 (if (not (looking-at "^$")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2779 (allout-unprotected (open-line 1)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2780 (allout-end-of-current-subtree))) |
3430 | 2781 ;; Going inwards - double-space if first offspring is, |
2782 ;; otherwise snug up. | |
2783 (end-of-line) ; So we skip any concealed progeny. | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2784 (allout-pre-next-preface) |
3430 | 2785 (if (bolp) |
2786 ;; Blank lines between current header body and next | |
2787 ;; header - get to last substantive (non-white-space) | |
2788 ;; line in body: | |
2789 (re-search-backward "[^ \t\n]" nil t)) | |
2790 (if (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2791 (allout-next-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2792 (if (> (allout-recent-depth) ref-depth) |
3430 | 2793 ;; This is an offspring. |
2794 (progn (forward-line -1) | |
2795 (looking-at "^\\s-*$")))) | |
2796 (progn (forward-line 1) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2797 (allout-unprotected (open-line 1)))) |
3430 | 2798 (end-of-line)) |
2799 ;;(if doing-beginning (goto-char doing-beginning)) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2800 (if (not (bobp)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2801 (progn (if (and (not (> depth ref-depth)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2802 (not before)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2803 (allout-unprotected (open-line 1)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2804 (if (> depth ref-depth) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2805 (allout-unprotected (newline 1)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2806 (if dbl-space |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2807 (allout-unprotected (open-line 1)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2808 (if (not before) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2809 (allout-unprotected (newline 1)))))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2810 (if dbl-space |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2811 (allout-unprotected (newline 1))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2812 (if (and (not (eobp)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2813 (not (bolp))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2814 (forward-char 1)))) |
3430 | 2815 )) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2816 (insert (concat (allout-make-topic-prefix opening-numbered |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
2817 t |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
2818 depth) |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
2819 " ")) |
3430 | 2820 |
2821 ;;(if doing-beginning (save-excursion (newline (if dbl-space 2 1)))) | |
2822 | |
2823 | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2824 (allout-rebullet-heading (and use_sib_bullet ref-bullet);;; solicit |
29490 | 2825 depth ;;; depth |
2826 nil ;;; number-control | |
2827 nil ;;; index | |
3430 | 2828 t) (end-of-line) |
2829 ) | |
2830 ) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2831 ;;;_ . open-topic contingencies |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2832 ;;;_ ; base topic - one from which open was issued |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2833 ;;;_ , beginning char |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
2834 ;;;_ , amount of space before will be used, unless opening in place |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2835 ;;;_ , end char will be used, unless opening before (and it still may) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2836 ;;;_ ; absolute depth of new topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2837 ;;;_ ! insert in place - overrides most stuff |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2838 ;;;_ ; relative depth of new re base |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2839 ;;;_ ; before or after base topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2840 ;;;_ ; spacing around topic, if any, prior to new topic and at same depth |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2841 ;;;_ ; buffer boundaries - special provisions for beginning and end ob |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2842 ;;;_ ; level 1 topics have special provisions also - double space. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2843 ;;;_ ; location of new topic |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2844 ;;;_ > allout-open-subtopic (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2845 (defun allout-open-subtopic (arg) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2846 "Open new topic header at deeper level than the current one. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2847 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2848 Negative universal arg means to open deeper, but place the new topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2849 prior to the current one." |
3430 | 2850 (interactive "p") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2851 (allout-open-topic 1 (> 0 arg))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2852 ;;;_ > allout-open-sibtopic (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2853 (defun allout-open-sibtopic (arg) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2854 "Open new topic header at same level as the current one. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2855 |
29490 | 2856 Positive universal arg means to use the bullet of the prior sibling. |
2857 | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2858 Negative universal arg means to place the new topic prior to the current |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2859 one." |
3430 | 2860 (interactive "p") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2861 (allout-open-topic 0 (> 0 arg) (< 1 arg))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2862 ;;;_ > allout-open-supertopic (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2863 (defun allout-open-supertopic (arg) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2864 "Open new topic header at shallower level than the current one. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2865 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2866 Negative universal arg means to open shallower, but place the new |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2867 topic prior to the current one." |
3430 | 2868 |
2869 (interactive "p") | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2870 (allout-open-topic -1 (> 0 arg))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2871 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2872 ;;;_ - Outline Alteration |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2873 ;;;_ : Topic Modification |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2874 ;;;_ = allout-former-auto-filler |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2875 (defvar allout-former-auto-filler nil |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2876 "Name of modal fill function being wrapped by `allout-auto-fill'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2877 ;;;_ > allout-auto-fill () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2878 (defun allout-auto-fill () |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
2879 "`allout-mode' autofill function. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2880 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2881 Maintains outline hanging topic indentation if |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2882 `allout-use-hanging-indents' is set." |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2883 (let ((fill-prefix (if allout-use-hanging-indents |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2884 ;; Check for topic header indentation: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2885 (save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2886 (beginning-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2887 (if (looking-at allout-regexp) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2888 ;; ... construct indentation to account for |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2889 ;; length of topic prefix: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2890 (make-string (progn (allout-end-of-prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2891 (current-column)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2892 ?\ )))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2893 (if (or allout-former-auto-filler allout-use-hanging-indents) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2894 (do-auto-fill)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2895 ;;;_ > allout-reindent-body (old-depth new-depth &optional number) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2896 (defun allout-reindent-body (old-depth new-depth &optional number) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2897 "Reindent body lines which were indented at OLD-DEPTH to NEW-DEPTH. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2898 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2899 Optional arg NUMBER indicates numbering is being added, and it must |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
2900 be accommodated. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2901 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2902 Note that refill of indented paragraphs is not done." |
3430 | 2903 |
2904 (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2905 (allout-end-of-prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2906 (let* ((new-margin (current-column)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2907 excess old-indent-begin old-indent-end |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2908 curr-ind |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2909 ;; We want the column where the header-prefix text started |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2910 ;; *before* the prefix was changed, so we infer it relative |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2911 ;; to the new margin and the shift in depth: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2912 (old-margin (+ old-depth (- new-margin new-depth)))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2913 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2914 ;; Process lines up to (but excluding) next topic header: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2915 (allout-unprotected |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2916 (save-match-data |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2917 (while |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2918 (and (re-search-forward "[\n\r]\\(\\s-*\\)" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2919 nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2920 t) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2921 ;; Register the indent data, before we reset the |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2922 ;; match data with a subsequent `looking-at': |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2923 (setq old-indent-begin (match-beginning 1) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2924 old-indent-end (match-end 1)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2925 (not (looking-at allout-regexp))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2926 (if (> 0 (setq excess (- (current-column) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2927 old-margin))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2928 ;; Text starts left of old margin - don't adjust: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2929 nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2930 ;; Text was hanging at or right of old left margin - |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2931 ;; reindent it, preserving its existing indentation |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2932 ;; beyond the old margin: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2933 (delete-region old-indent-begin old-indent-end) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2934 (indent-to (+ new-margin excess))))))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2935 ;;;_ > allout-rebullet-current-heading (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2936 (defun allout-rebullet-current-heading (arg) |
29490 | 2937 "Solicit new bullet for current visible heading." |
2938 (interactive "p") | |
2939 (let ((initial-col (current-column)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2940 (on-bullet (eq (point)(allout-current-bullet-pos))) |
29490 | 2941 (backwards (if (< arg 0) |
2942 (setq arg (* arg -1))))) | |
2943 (while (> arg 0) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2944 (save-excursion (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2945 (allout-end-of-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2946 (allout-rebullet-heading t ;;; solicit |
29490 | 2947 nil ;;; depth |
2948 nil ;;; number-control | |
2949 nil ;;; index | |
2950 t)) ;;; do-successors | |
2951 (setq arg (1- arg)) | |
2952 (if (<= arg 0) | |
2953 nil | |
2954 (setq initial-col nil) ; Override positioning back to init col | |
2955 (if (not backwards) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2956 (allout-next-visible-heading 1) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2957 (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2958 (allout-next-visible-heading -1)))) |
29490 | 2959 (message "Done.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2960 (cond (on-bullet (goto-char (allout-current-bullet-pos))) |
29490 | 2961 (initial-col (move-to-column initial-col))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2962 ;;;_ > allout-rebullet-heading (&optional solicit ...) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2963 (defun allout-rebullet-heading (&optional solicit |
3430 | 2964 new-depth |
2965 number-control | |
2966 index | |
2967 do-successors) | |
2968 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2969 "Adjust bullet of current topic prefix. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2970 |
29490 | 2971 If SOLICIT is non-nil, then the choice of bullet is solicited from |
2972 user. If it's a character, then that character is offered as the | |
2973 default, otherwise the one suited to the context \(according to | |
2974 distinction or depth) is offered. If non-nil, then the | |
2975 context-specific bullet is just used. | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2976 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2977 Second arg NEW-DEPTH forces the topic prefix to that depth, regardless |
29490 | 2978 of the topic's current depth. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2979 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2980 Third arg NUMBER-CONTROL can force the prefix to or away from |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2981 numbered form. It has effect only if `allout-numbered-bullet' is |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2982 non-nil and soliciting was not explicitly invoked (via first arg). |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2983 Its effect, numbering or denumbering, then depends on the setting |
54223
7ab62964d965
(allout-rebullet-heading): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
52861
diff
changeset
|
2984 of the fourth arg, INDEX. |
7ab62964d965
(allout-rebullet-heading): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
52861
diff
changeset
|
2985 |
7ab62964d965
(allout-rebullet-heading): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
52861
diff
changeset
|
2986 If NUMBER-CONTROL is non-nil and fourth arg INDEX is nil, then the |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2987 prefix of the topic is forced to be non-numbered. Null index and |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2988 non-nil NUMBER-CONTROL forces denumbering. Non-nil INDEX (and |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2989 non-nil NUMBER-CONTROL) forces a numbered-prefix form. If non-nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2990 INDEX is a number, then that number is used for the numbered |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2991 prefix. Non-nil and non-number means that the index for the |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2992 numbered prefix will be derived by `allout-make-topic-prefix'. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2993 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2994 Fifth arg DO-SUCCESSORS t means re-resolve count on succeeding |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2995 siblings. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2996 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2997 Cf vars `allout-stylish-prefixes', `allout-old-style-prefixes', |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2998 and `allout-numbered-bullet', which all affect the behavior of |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2999 this function." |
3430 | 3000 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3001 (let* ((current-depth (allout-depth)) |
3430 | 3002 (new-depth (or new-depth current-depth)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3003 (mb allout-recent-prefix-beginning) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3004 (me allout-recent-prefix-end) |
3430 | 3005 (current-bullet (buffer-substring (- me 1) me)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3006 (new-prefix (allout-make-topic-prefix current-bullet |
3430 | 3007 nil |
3008 new-depth | |
3009 solicit | |
3010 number-control | |
3011 index))) | |
3012 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3013 ;; Is new one is identical to old? |
3430 | 3014 (if (and (= current-depth new-depth) |
3015 (string= current-bullet | |
3016 (substring new-prefix (1- (length new-prefix))))) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3017 ;; Nothing to do: |
3430 | 3018 t |
3019 | |
3020 ;; New prefix probably different from old: | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3021 ; get rid of old one: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3022 (allout-unprotected (delete-region mb me)) |
3430 | 3023 (goto-char mb) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3024 ; Dispense with number if |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3025 ; numbered-bullet prefix: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3026 (if (and allout-numbered-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3027 (string= allout-numbered-bullet current-bullet) |
3430 | 3028 (looking-at "[0-9]+")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3029 (allout-unprotected |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3030 (delete-region (match-beginning 0)(match-end 0)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3031 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3032 ; Put in new prefix: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3033 (allout-unprotected (insert new-prefix)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3034 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3035 ;; Reindent the body if elected and margin changed: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3036 (if (and allout-reindent-bodies |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3037 (not (= new-depth current-depth))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3038 (allout-reindent-body current-depth new-depth)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3039 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3040 ;; Recursively rectify successive siblings of orig topic if |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3041 ;; caller elected for it: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3042 (if do-successors |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3043 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3044 (while (allout-next-sibling new-depth nil) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3045 (setq index |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3046 (cond ((numberp index) (1+ index)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3047 ((not number-control) (allout-sibling-index)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3048 (if (allout-numbered-type-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3049 (allout-rebullet-heading nil ;;; solicit |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3050 new-depth ;;; new-depth |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3051 number-control;;; number-control |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3052 index ;;; index |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3053 nil))))) ;;;(dont!)do-successors |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3054 ) ; (if (and (= current-depth new-depth)...)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3055 ) ; let* ((current-depth (allout-depth))...) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3056 ) ; defun |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3057 ;;;_ > allout-rebullet-topic (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3058 (defun allout-rebullet-topic (arg) |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3059 "Like `allout-rebullet-topic-grunt', but start from topic visible at point. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3060 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3061 Descends into invisible as well as visible topics, however. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3062 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3063 With repeat count, shift topic depth by that amount." |
3430 | 3064 (interactive "P") |
3065 (let ((start-col (current-column)) | |
3066 (was-eol (eolp))) | |
3067 (save-excursion | |
3068 ;; Normalize arg: | |
3069 (cond ((null arg) (setq arg 0)) | |
3070 ((listp arg) (setq arg (car arg)))) | |
3071 ;; Fill the user in, in case we're shifting a big topic: | |
3072 (if (not (zerop arg)) (message "Shifting...")) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3073 (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3074 (if (<= (+ (allout-recent-depth) arg) 0) |
3430 | 3075 (error "Attempt to shift topic below level 1")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3076 (allout-rebullet-topic-grunt arg) |
3430 | 3077 (if (not (zerop arg)) (message "Shifting... done."))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3078 (move-to-column (max 0 (+ start-col arg))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3079 ;;;_ > allout-rebullet-topic-grunt (&optional relative-depth ...) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3080 (defun allout-rebullet-topic-grunt (&optional relative-depth |
3430 | 3081 starting-depth |
3082 starting-point | |
3083 index | |
3084 do-successors) | |
3085 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3086 "Rebullet the topic at point, visible or invisible, and all |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3087 contained subtopics. See `allout-rebullet-heading' for rebulleting |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3088 behavior. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3089 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3090 Arg RELATIVE-DEPTH means to shift the depth of the entire |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3091 topic that amount. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3092 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3093 \(fn &optional RELATIVE-DEPTH)" |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3094 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3095 ;; All args except the first one are for internal recursive use by the |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3096 ;; function itself. |
3430 | 3097 |
3098 (let* ((relative-depth (or relative-depth 0)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3099 (new-depth (allout-depth)) |
3430 | 3100 (starting-depth (or starting-depth new-depth)) |
3101 (on-starting-call (null starting-point)) | |
3102 (index (or index | |
3103 ;; Leave index null on starting call, so rebullet-heading | |
3104 ;; calculates it at what might be new depth: | |
3105 (and (or (zerop relative-depth) | |
3106 (not on-starting-call)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3107 (allout-sibling-index)))) |
3430 | 3108 (moving-outwards (< 0 relative-depth)) |
3109 (starting-point (or starting-point (point)))) | |
3110 | |
3111 ;; Sanity check for excessive promotion done only on starting call: | |
3112 (and on-starting-call | |
3113 moving-outwards | |
3114 (> 0 (+ starting-depth relative-depth)) | |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
3115 (error "Attempt to shift topic out beyond level 1")) ;;; ====> |
3430 | 3116 |
3117 (cond ((= starting-depth new-depth) | |
3118 ;; We're at depth to work on this one: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3119 (allout-rebullet-heading nil ;;; solicit |
3430 | 3120 (+ starting-depth ;;; starting-depth |
3121 relative-depth) | |
3122 nil ;;; number | |
3123 index ;;; index | |
3124 ;; Every contained topic will get hit, | |
3125 ;; and we have to get to outside ones | |
3126 ;; deliberately: | |
3127 nil) ;;; do-successors | |
3128 ;; ... and work on subsequent ones which are at greater depth: | |
3129 (setq index 0) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3130 (allout-next-heading) |
3430 | 3131 (while (and (not (eobp)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3132 (< starting-depth (allout-recent-depth))) |
3430 | 3133 (setq index (1+ index)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3134 (allout-rebullet-topic-grunt relative-depth ;;; relative-depth |
3430 | 3135 (1+ starting-depth);;;starting-depth |
3136 starting-point ;;; starting-point | |
3137 index))) ;;; index | |
3138 | |
3139 ((< starting-depth new-depth) | |
3140 ;; Rare case - subtopic more than one level deeper than parent. | |
3141 ;; Treat this one at an even deeper level: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3142 (allout-rebullet-topic-grunt relative-depth ;;; relative-depth |
3430 | 3143 new-depth ;;; starting-depth |
3144 starting-point ;;; starting-point | |
3145 index))) ;;; index | |
3146 | |
3147 (if on-starting-call | |
3148 (progn | |
3149 ;; Rectify numbering of former siblings of the adjusted topic, | |
3150 ;; if topic has changed depth | |
3151 (if (or do-successors | |
3152 (and (not (zerop relative-depth)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3153 (or (= (allout-recent-depth) starting-depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3154 (= (allout-recent-depth) (+ starting-depth |
3430 | 3155 relative-depth))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3156 (allout-rebullet-heading nil nil nil nil t)) |
3430 | 3157 ;; Now rectify numbering of new siblings of the adjusted topic, |
3158 ;; if depth has been changed: | |
3159 (progn (goto-char starting-point) | |
3160 (if (not (zerop relative-depth)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3161 (allout-rebullet-heading nil nil nil nil t))))) |
3430 | 3162 ) |
3163 ) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3164 ;;;_ > allout-renumber-to-depth (&optional depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3165 (defun allout-renumber-to-depth (&optional depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3166 "Renumber siblings at current depth. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3167 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3168 Affects superior topics if optional arg DEPTH is less than current depth. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3169 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3170 Returns final depth." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3171 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3172 ;; Proceed by level, processing subsequent siblings on each, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3173 ;; ascending until we get shallower than the start depth: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3174 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3175 (let ((ascender (allout-depth)) |
29490 | 3176 was-eobp) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3177 (while (and (not (eobp)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3178 (allout-depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3179 (>= (allout-recent-depth) depth) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3180 (>= ascender depth)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3181 ; Skip over all topics at |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3182 ; lesser depths, which can not |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3183 ; have been disturbed: |
29490 | 3184 (while (and (not (setq was-eobp (eobp))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3185 (> (allout-recent-depth) ascender)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3186 (allout-next-heading)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3187 ; Prime ascender for ascension: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3188 (setq ascender (1- (allout-recent-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3189 (if (>= (allout-recent-depth) depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3190 (allout-rebullet-heading nil ;;; solicit |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3191 nil ;;; depth |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3192 nil ;;; number-control |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3193 nil ;;; index |
29490 | 3194 t)) ;;; do-successors |
3195 (if was-eobp (goto-char (point-max))))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3196 (allout-recent-depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3197 ;;;_ > allout-number-siblings (&optional denumber) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3198 (defun allout-number-siblings (&optional denumber) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3199 "Assign numbered topic prefix to this topic and its siblings. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3200 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3201 With universal argument, denumber - assign default bullet to this |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3202 topic and its siblings. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3203 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3204 With repeated universal argument (`^U^U'), solicit bullet for each |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3205 rebulleting each topic at this level." |
3430 | 3206 |
3207 (interactive "P") | |
3208 | |
3209 (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3210 (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3211 (allout-beginning-of-level) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3212 (let ((depth (allout-recent-depth)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3213 (index (if (not denumber) 1)) |
3430 | 3214 (use-bullet (equal '(16) denumber)) |
3215 (more t)) | |
3216 (while more | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3217 (allout-rebullet-heading use-bullet ;;; solicit |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3218 depth ;;; depth |
3430 | 3219 t ;;; number-control |
3220 index ;;; index | |
3221 nil) ;;; do-successors | |
3222 (if index (setq index (1+ index))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3223 (setq more (allout-next-sibling depth nil)))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3224 ;;;_ > allout-shift-in (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3225 (defun allout-shift-in (arg) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3226 "Increase depth of current heading and any topics collapsed within it." |
3430 | 3227 (interactive "p") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3228 (allout-rebullet-topic arg)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3229 ;;;_ > allout-shift-out (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3230 (defun allout-shift-out (arg) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3231 "Decrease depth of current heading and any topics collapsed within it." |
3430 | 3232 (interactive "p") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3233 (allout-rebullet-topic (* arg -1))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3234 ;;;_ : Surgery (kill-ring) functions with special provisions for outlines: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3235 ;;;_ > allout-kill-line (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3236 (defun allout-kill-line (&optional arg) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3237 "Kill line, adjusting subsequent lines suitably for outline mode." |
3430 | 3238 |
3239 (interactive "*P") | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3240 (if (not (and (allout-mode-p) ; active outline mode, |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3241 allout-numbered-bullet ; numbers may need adjustment, |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3242 (bolp) ; may be clipping topic head, |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3243 (looking-at allout-regexp))) ; are clipping topic head. |
3430 | 3244 ;; Above conditions do not obtain - just do a regular kill: |
3245 (kill-line arg) | |
3246 ;; Ah, have to watch out for adjustments: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3247 (let* ((depth (allout-depth))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3248 ; Do the kill: |
3430 | 3249 (kill-line arg) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3250 ; Provide some feedback: |
3430 | 3251 (sit-for 0) |
3252 (save-excursion | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3253 ; Start with the topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3254 ; following killed line: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3255 (if (not (looking-at allout-regexp)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3256 (allout-next-heading)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3257 (allout-renumber-to-depth depth))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3258 ;;;_ > allout-kill-topic () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3259 (defun allout-kill-topic () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3260 "Kill topic together with subtopics. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3261 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3262 Leaves primary topic's trailing vertical whitespace, if any." |
3430 | 3263 |
3264 ;; Some finagling is done to make complex topic kills appear faster | |
3265 ;; than they actually are. A redisplay is performed immediately | |
3266 ;; after the region is disposed of, though the renumbering process | |
3267 ;; has yet to be performed. This means that there may appear to be | |
3268 ;; a lag *after* the kill has been performed. | |
3269 | |
3270 (interactive) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3271 (let* ((beg (prog1 (allout-back-to-current-heading)(beginning-of-line))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3272 (depth (allout-recent-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3273 (allout-end-of-current-subtree) |
3430 | 3274 (if (not (eobp)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3275 (if (or (not (looking-at "^$")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3276 ;; A blank line - cut it with this topic *unless* this |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3277 ;; is the last topic at this level, in which case |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3278 ;; we'll leave the blank line as part of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3279 ;; containing topic: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3280 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3281 (and (allout-next-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3282 (>= (allout-recent-depth) depth)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3283 (forward-char 1))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3284 |
3430 | 3285 (kill-region beg (point)) |
3286 (sit-for 0) | |
3287 (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3288 (allout-renumber-to-depth depth)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3289 ;;;_ > allout-yank-processing () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3290 (defun allout-yank-processing (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3291 |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
3292 "Incidental outline specific business to be done just after text yanks. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3293 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3294 Does depth adjustment of yanked topics, when: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3295 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3296 1 the stuff being yanked starts with a valid outline header prefix, and |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3297 2 it is being yanked at the end of a line which consists of only a valid |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3298 topic prefix. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3299 |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
3300 Also, adjusts numbering of subsequent siblings when appropriate. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3301 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3302 Depth adjustment alters the depth of all the topics being yanked |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3303 the amount it takes to make the first topic have the depth of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3304 header into which it's being yanked. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3305 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3306 The point is left in front of yanked, adjusted topics, rather than |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3307 at the end (and vice-versa with the mark). Non-adjusted yanks, |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
3308 however, are left exactly like normal, not outline specific yanks." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3309 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3310 (interactive "*P") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3311 ; Get to beginning, leaving |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3312 ; region around subject: |
29490 | 3313 (if (< (my-mark-marker t) (point)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3314 (exchange-point-and-mark)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3315 (let* ((subj-beg (point)) |
29490 | 3316 (subj-end (my-mark-marker t)) |
3317 ;; 'resituate' if yanking an entire topic into topic header: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3318 (resituate (and (allout-e-o-prefix-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3319 (looking-at (concat "\\(" allout-regexp "\\)")) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3320 (allout-prefix-data (match-beginning 1) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3321 (match-end 1)))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3322 ;; `rectify-numbering' if resituating (where several topics may |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3323 ;; be resituating) or yanking a topic into a topic slot (bol): |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3324 (rectify-numbering (or resituate |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3325 (and (bolp) (looking-at allout-regexp))))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3326 (if resituate |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3327 ; The yanked stuff is a topic: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3328 (let* ((prefix-len (- (match-end 1) subj-beg)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3329 (subj-depth (allout-recent-depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3330 (prefix-bullet (allout-recent-bullet)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3331 (adjust-to-depth |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3332 ;; Nil if adjustment unnecessary, otherwise depth to which |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3333 ;; adjustment should be made: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3334 (save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3335 (and (goto-char subj-end) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3336 (eolp) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3337 (goto-char subj-beg) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3338 (and (looking-at allout-regexp) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3339 (progn |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3340 (beginning-of-line) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3341 (not (= (point) subj-beg))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3342 (looking-at allout-regexp) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3343 (allout-prefix-data (match-beginning 0) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3344 (match-end 0))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3345 (allout-recent-depth)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3346 done |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3347 (more t)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3348 (setq rectify-numbering allout-numbered-bullet) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3349 (if adjust-to-depth |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3350 ; Do the adjustment: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3351 (progn |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3352 (message "... yanking") (sit-for 0) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3353 (save-restriction |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3354 (narrow-to-region subj-beg subj-end) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3355 ; Trim off excessive blank |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3356 ; line at end, if any: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3357 (goto-char (point-max)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3358 (if (looking-at "^$") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3359 (allout-unprotected (delete-char -1))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3360 ; Work backwards, with each |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3361 ; shallowest level, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3362 ; successively excluding the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3363 ; last processed topic from |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3364 ; the narrow region: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3365 (while more |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3366 (allout-back-to-current-heading) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3367 ; go as high as we can in each bunch: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3368 (while (allout-ascend-to-depth (1- (allout-depth)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3369 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3370 (allout-rebullet-topic-grunt (- adjust-to-depth |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3371 subj-depth)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3372 (allout-depth)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3373 (if (setq more (not (bobp))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3374 (progn (widen) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3375 (forward-char -1) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3376 (narrow-to-region subj-beg (point)))))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3377 (message "") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3378 ;; Preserve new bullet if it's a distinctive one, otherwise |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3379 ;; use old one: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3380 (if (string-match (regexp-quote prefix-bullet) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3381 allout-distinctive-bullets-string) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3382 ; Delete from bullet of old to |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3383 ; before bullet of new: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3384 (progn |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3385 (beginning-of-line) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3386 (delete-region (point) subj-beg) |
29490 | 3387 (set-marker (my-mark-marker t) subj-end) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3388 (goto-char subj-beg) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3389 (allout-end-of-prefix)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3390 ; Delete base subj prefix, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3391 ; leaving old one: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3392 (delete-region (point) (+ (point) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3393 prefix-len |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3394 (- adjust-to-depth subj-depth))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3395 ; and delete residual subj |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3396 ; prefix digits and space: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3397 (while (looking-at "[0-9]") (delete-char 1)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3398 (if (looking-at " ") (delete-char 1)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3399 (exchange-point-and-mark)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3400 (if rectify-numbering |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3401 (progn |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3402 (save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3403 ; Give some preliminary feedback: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3404 (message "... reconciling numbers") (sit-for 0) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3405 ; ... and renumber, in case necessary: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3406 (goto-char subj-beg) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3407 (if (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3408 (allout-rebullet-heading nil ;;; solicit |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3409 (allout-depth) ;;; depth |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3410 nil ;;; number-control |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3411 nil ;;; index |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3412 t)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3413 (message "")))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3414 (if (not resituate) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3415 (exchange-point-and-mark)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3416 ;;;_ > allout-yank (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3417 (defun allout-yank (&optional arg) |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
3418 "`allout-mode' yank, with depth and numbering adjustment of yanked topics. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3419 |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
3420 Non-topic yanks work no differently than normal yanks. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3421 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3422 If a topic is being yanked into a bare topic prefix, the depth of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3423 yanked topic is adjusted to the depth of the topic prefix. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3424 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3425 1 we're yanking in an `allout-mode' buffer |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3426 2 the stuff being yanked starts with a valid outline header prefix, and |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3427 3 it is being yanked at the end of a line which consists of only a valid |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3428 topic prefix. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3429 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3430 If these conditions hold then the depth of the yanked topics are all |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3431 adjusted the amount it takes to make the first one at the depth of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3432 header into which it's being yanked. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3433 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3434 The point is left in front of yanked, adjusted topics, rather than |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3435 at the end (and vice-versa with the mark). Non-adjusted yanks, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3436 however, (ones that don't qualify for adjustment) are handled |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3437 exactly like normal yanks. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3438 |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
3439 Numbering of yanked topics, and the successive siblings at the depth |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3440 into which they're being yanked, is adjusted. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3441 |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
3442 `allout-yank-pop' works with `allout-yank' just like normal yank-pop |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3443 works with normal yank in non-outline buffers." |
3430 | 3444 |
3445 (interactive "*P") | |
3446 (setq this-command 'yank) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3447 (yank arg) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3448 (if (allout-mode-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3449 (allout-yank-processing))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3450 ;;;_ > allout-yank-pop (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3451 (defun allout-yank-pop (&optional arg) |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3452 "Yank-pop like `allout-yank' when popping to bare outline prefixes. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3453 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3454 Adapts level of popped topics to level of fresh prefix. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3455 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3456 Note - prefix changes to distinctive bullets will stick, if followed |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3457 by pops to non-distinctive yanks. Bug..." |
3430 | 3458 |
3459 (interactive "*p") | |
3460 (setq this-command 'yank) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3461 (yank-pop arg) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3462 (if (allout-mode-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3463 (allout-yank-processing))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3464 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3465 ;;;_ - Specialty bullet functions |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3466 ;;;_ : File Cross references |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3467 ;;;_ > allout-resolve-xref () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3468 (defun allout-resolve-xref () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3469 "Pop to file associated with current heading, if it has an xref bullet. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3470 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3471 \(Works according to setting of `allout-file-xref-bullet')." |
3430 | 3472 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3473 (if (not allout-file-xref-bullet) |
3430 | 3474 (error |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3475 "outline cross references disabled - no `allout-file-xref-bullet'") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3476 (if (not (string= (allout-current-bullet) allout-file-xref-bullet)) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3477 (error "current heading lacks cross-reference bullet `%s'" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3478 allout-file-xref-bullet) |
3430 | 3479 (let (file-name) |
3480 (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3481 (let* ((text-start allout-recent-prefix-end) |
15663
4f762e6ae80a
(outline-resolve-xref): Do not mistake a blank line
Karl Heuer <kwzh@gnu.org>
parents:
14416
diff
changeset
|
3482 (heading-end (progn (end-of-line) (point)))) |
3430 | 3483 (goto-char text-start) |
3484 (setq file-name | |
3485 (if (re-search-forward "\\s-\\(\\S-*\\)" heading-end t) | |
3486 (buffer-substring (match-beginning 1) (match-end 1)))))) | |
3487 (setq file-name | |
3488 (if (not (= (aref file-name 0) ?:)) | |
3489 (expand-file-name file-name) | |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3490 ; A registry-files ref, strip the `:' |
3430 | 3491 ; and try to follow it: |
3492 (let ((reg-ref (reference-registered-file | |
3493 (substring file-name 1) nil t))) | |
3494 (if reg-ref (car (cdr reg-ref)))))) | |
3495 (if (or (file-exists-p file-name) | |
3496 (if (file-writable-p file-name) | |
3497 (y-or-n-p (format "%s not there, create one? " | |
3498 file-name)) | |
3499 (error "%s not found and can't be created" file-name))) | |
3500 (condition-case failure | |
3501 (find-file-other-window file-name) | |
29490 | 3502 ('error failure)) |
3430 | 3503 (error "%s not found" file-name)) |
3504 ) | |
3505 ) | |
3506 ) | |
3507 ) | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3508 |
29490 | 3509 ;;;_ #6 Exposure Control |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3510 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3511 ;;;_ - Fundamental |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3512 ;;;_ > allout-flag-current-subtree (flag) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3513 (defun allout-flag-current-subtree (flag) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3514 "Hide or show subtree of currently-visible topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3515 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3516 See `allout-flag-region' for more details." |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3517 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3518 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3519 (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3520 (allout-flag-region (point) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3521 (progn (allout-end-of-current-subtree) (1- (point))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3522 flag))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3523 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3524 ;;;_ - Topic-specific |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3525 ;;;_ > allout-show-entry () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3526 (defun allout-show-entry () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3527 "Like `allout-show-current-entry', reveals entries nested in hidden topics. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3528 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3529 This is a way to give restricted peek at a concealed locality without the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3530 expense of exposing its context, but can leave the outline with aberrant |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
3531 exposure. `allout-hide-current-entry-completely' or `allout-show-to-offshoot' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3532 should be used after the peek to rectify the exposure." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3533 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3534 (interactive) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3535 (save-excursion |
29490 | 3536 (let ((at (point)) |
3537 beg end) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3538 (allout-goto-prefix) |
29490 | 3539 (setq beg (if (= (preceding-char) ?\r) (1- (point)) (point))) |
3540 (re-search-forward "[\n\r]" nil t) | |
3541 (setq end (1- (if (< at (point)) | |
3542 ;; We're on topic head line - show only it: | |
3543 (point) | |
3544 ;; or we're in body - include it: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3545 (max beg (or (allout-pre-next-preface) (point)))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3546 (allout-flag-region beg end ?\n) |
29490 | 3547 (list beg end)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3548 ;;;_ > allout-show-children (&optional level strict) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3549 (defun allout-show-children (&optional level strict) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3550 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3551 "If point is visible, show all direct subheadings of this heading. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3552 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3553 Otherwise, do `allout-show-to-offshoot', and then show subheadings. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3554 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3555 Optional LEVEL specifies how many levels below the current level |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3556 should be shown, or all levels if t. Default is 1. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3557 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3558 Optional STRICT means don't resort to -show-to-offshoot, no matter |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3559 what. This is basically so -show-to-offshoot, which is called by |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3560 this function, can employ the pure offspring-revealing capabilities of |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3561 it. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3562 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3563 Returns point at end of subtree that was opened, if any. (May get a |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3564 point of non-opened subtree?)" |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3565 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3566 (interactive "p") |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3567 (let (max-pos) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3568 (if (and (not strict) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3569 (allout-hidden-p)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3570 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3571 (progn (allout-show-to-offshoot) ; Point's concealed, open to |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3572 ; expose it. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3573 ;; Then recurse, but with "strict" set so we don't |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3574 ;; infinite regress: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3575 (setq max-pos (allout-show-children level t))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3576 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3577 (save-excursion |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3578 (save-restriction |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3579 (let* ((start-pt (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3580 (chart (allout-chart-subtree (or level 1))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3581 (to-reveal (allout-chart-to-reveal chart (or level 1)))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3582 (goto-char start-pt) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3583 (if (and strict (= (preceding-char) ?\r)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3584 ;; Concealed root would already have been taken care of, |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3585 ;; unless strict was set. |
29490 | 3586 (progn |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3587 (allout-flag-region (point) (allout-snug-back) ?\n) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3588 (if allout-show-bodies |
29490 | 3589 (progn (goto-char (car to-reveal)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3590 (allout-show-current-entry))))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3591 (while to-reveal |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3592 (goto-char (car to-reveal)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3593 (allout-flag-region (point) (allout-snug-back) ?\n) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3594 (if allout-show-bodies |
29490 | 3595 (progn (goto-char (car to-reveal)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3596 (allout-show-current-entry))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3597 (setq to-reveal (cdr to-reveal))))))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3598 ;;;_ > allout-hide-point-reconcile () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3599 (defun allout-hide-reconcile () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3600 "Like `allout-hide-current-entry'; hides completely if within hidden region. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3601 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3602 Specifically intended for aberrant exposure states, like entries that were |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3603 exposed by `allout-show-entry' but are within otherwise concealed regions." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3604 (interactive) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3605 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3606 (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3607 (allout-flag-region (if (not (bobp)) (1- (point)) (point)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3608 (progn (allout-pre-next-preface) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3609 (if (= ?\r (following-char)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3610 (point) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3611 (1- (point)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3612 ?\r))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3613 ;;;_ > allout-show-to-offshoot () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3614 (defun allout-show-to-offshoot () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3615 "Like `allout-show-entry', but reveals all concealed ancestors, as well. |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3616 |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3617 As with `allout-hide-current-entry-completely', useful for rectifying |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3618 aberrant exposure states produced by `allout-show-entry'." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3619 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3620 (interactive) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3621 (save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3622 (let ((orig-pt (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3623 (orig-pref (allout-goto-prefix)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3624 (last-at (point)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3625 bag-it) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3626 (while (or bag-it (= (preceding-char) ?\r)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3627 (beginning-of-line) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3628 (if (= last-at (setq last-at (point))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3629 ;; Oops, we're not making any progress! Show the current |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3630 ;; topic completely, and bag this try. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3631 (progn (beginning-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3632 (allout-show-current-subtree) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3633 (goto-char orig-pt) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3634 (setq bag-it t) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3635 (beep) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3636 (message "%s: %s" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3637 "allout-show-to-offshoot: " |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3638 "Aberrant nesting encountered."))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3639 (allout-show-children) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3640 (goto-char orig-pref)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3641 (goto-char orig-pt))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3642 (if (allout-hidden-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3643 (allout-show-entry))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3644 ;;;_ > allout-hide-current-entry () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3645 (defun allout-hide-current-entry () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3646 "Hide the body directly following this heading." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3647 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3648 (allout-back-to-current-heading) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3649 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3650 (allout-flag-region (point) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3651 (progn (allout-end-of-current-entry) (point)) |
29490 | 3652 ?\r))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3653 ;;;_ > allout-show-current-entry (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3654 (defun allout-show-current-entry (&optional arg) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3655 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3656 "Show body following current heading, or hide the entry if repeat count." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3657 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3658 (interactive "P") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3659 (if arg |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3660 (allout-hide-current-entry) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3661 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3662 (allout-flag-region (point) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3663 (progn (allout-end-of-current-entry) (point)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3664 ?\n)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3665 ;;;_ > allout-hide-current-entry-completely () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3666 ; ... allout-hide-current-entry-completely also for isearch dynamic exposure: |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3667 (defun allout-hide-current-entry-completely () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3668 "Like `allout-hide-current-entry', but conceal topic completely. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3669 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3670 Specifically intended for aberrant exposure states, like entries that were |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3671 exposed by `allout-show-entry' but are within otherwise concealed regions." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3672 (interactive) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3673 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3674 (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3675 (allout-flag-region (if (not (bobp)) (1- (point)) (point)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3676 (progn (allout-pre-next-preface) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3677 (if (= ?\r (following-char)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3678 (point) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3679 (1- (point)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3680 ?\r))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3681 ;;;_ > allout-show-current-subtree (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3682 (defun allout-show-current-subtree (&optional arg) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3683 "Show everything within the current topic. With a repeat-count, |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3684 expose this topic and its siblings." |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3685 (interactive "P") |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3686 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3687 (if (<= (allout-current-depth) 0) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3688 ;; Outside any topics - try to get to the first: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3689 (if (not (allout-next-heading)) |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
3690 (error "No topics") |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3691 ;; got to first, outermost topic - set to expose it and siblings: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3692 (message "Above outermost topic - exposing all.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3693 (allout-flag-region (point-min)(point-max) ?\n)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3694 (if (not arg) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3695 (allout-flag-current-subtree ?\n) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3696 (allout-beginning-of-level) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3697 (allout-expose-topic '(* :)))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3698 ;;;_ > allout-hide-current-subtree (&optional just-close) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3699 (defun allout-hide-current-subtree (&optional just-close) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3700 "Close the current topic, or containing topic if this one is already closed. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3701 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3702 If this topic is closed and it's a top level topic, close this topic |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3703 and its siblings. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3704 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3705 If optional arg JUST-CLOSE is non-nil, do not treat the parent or |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3706 siblings, even if the target topic is already closed." |
3430 | 3707 |
3708 (interactive) | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3709 (let ((from (point)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3710 (orig-eol (progn (end-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3711 (if (not (allout-goto-prefix)) |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
3712 (error "No topics found") |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3713 (end-of-line)(point))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3714 (allout-flag-current-subtree ?\r) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3715 (goto-char from) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3716 (if (and (= orig-eol (progn (goto-char orig-eol) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3717 (end-of-line) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3718 (point))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3719 (not just-close) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3720 ;; Structure didn't change - try hiding current level: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3721 (goto-char from) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3722 (if (allout-up-current-level 1 t) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3723 t |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3724 (goto-char 0) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3725 (let ((msg |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3726 "Top-level topic already closed - closing siblings...")) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3727 (message msg) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3728 (allout-expose-topic '(0 :)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3729 (message (concat msg " Done."))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3730 nil) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3731 (/= (allout-recent-depth) 0)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3732 (allout-hide-current-subtree)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3733 (goto-char from))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3734 ;;;_ > allout-show-current-branches () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3735 (defun allout-show-current-branches () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3736 "Show all subheadings of this heading, but not their bodies." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3737 (interactive) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3738 (beginning-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3739 (allout-show-children t)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3740 ;;;_ > allout-hide-current-leaves () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3741 (defun allout-hide-current-leaves () |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3742 "Hide the bodies of the current topic and all its offspring." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3743 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3744 (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3745 (allout-hide-region-body (point) (progn (allout-end-of-current-subtree) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3746 (point)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3747 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3748 ;;;_ - Region and beyond |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3749 ;;;_ > allout-show-all () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3750 (defun allout-show-all () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3751 "Show all of the text in the buffer." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3752 (interactive) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3753 (message "Exposing entire buffer...") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3754 (allout-flag-region (point-min) (point-max) ?\n) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3755 (message "Exposing entire buffer... Done.")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3756 ;;;_ > allout-hide-bodies () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3757 (defun allout-hide-bodies () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3758 "Hide all of buffer except headings." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3759 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3760 (allout-hide-region-body (point-min) (point-max))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3761 ;;;_ > allout-hide-region-body (start end) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3762 (defun allout-hide-region-body (start end) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3763 "Hide all body lines in the region, but not headings." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3764 (save-excursion |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3765 (save-restriction |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3766 (narrow-to-region start end) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3767 (goto-char (point-min)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3768 (while (not (eobp)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3769 (allout-flag-region (point) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3770 (progn (allout-pre-next-preface) (point)) ?\r) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3771 (if (not (eobp)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3772 (forward-char |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3773 (if (looking-at "[\n\r][\n\r]") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3774 2 1))))))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3775 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3776 ;;;_ > allout-expose-topic (spec) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3777 (defun allout-expose-topic (spec) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3778 "Apply exposure specs to successive outline topic items. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3779 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3780 Use the more convenient frontend, `allout-new-exposure', if you don't |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3781 need evaluation of the arguments, or even better, the `allout-layout' |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3782 variable-keyed mode-activation/auto-exposure feature of allout outline |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3783 mode. See the respective documentation strings for more details. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3784 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3785 Cursor is left at start position. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3786 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3787 SPEC is either a number or a list. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3788 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3789 Successive specs on a list are applied to successive sibling topics. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3790 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3791 A simple spec \(either a number, one of a few symbols, or the null |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3792 list) dictates the exposure for the corresponding topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3793 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3794 Non-null lists recursively designate exposure specs for respective |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3795 subtopics of the current topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3796 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3797 The `:' repeat spec is used to specify exposure for any number of |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3798 successive siblings, up to the trailing ones for which there are |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3799 explicit specs following the `:'. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3800 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3801 Simple (numeric and null-list) specs are interpreted as follows: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3802 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3803 Numbers indicate the relative depth to open the corresponding topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3804 - negative numbers force the topic to be closed before opening to the |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3805 absolute value of the number, so all siblings are open only to |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3806 that level. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3807 - positive numbers open to the relative depth indicated by the |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3808 number, but do not force already opened subtopics to be closed. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3809 - 0 means to close topic - hide all offspring. |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3810 : - `repeat' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3811 apply prior element to all siblings at current level, *up to* |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3812 those siblings that would be covered by specs following the `:' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3813 on the list. Ie, apply to all topics at level but the last |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3814 ones. \(Only first of multiple colons at same level is |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3815 respected - subsequent ones are discarded.) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3816 * - completely opens the topic, including bodies. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3817 + - shows all the sub headers, but not the bodies |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3818 - - exposes the body of the corresponding topic. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3819 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3820 Examples: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3821 \(allout-expose-topic '(-1 : 0)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3822 Close this and all following topics at current level, exposing |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3823 only their immediate children, but close down the last topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3824 at this current level completely. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3825 \(allout-expose-topic '(-1 () : 1 0)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3826 Close current topic so only the immediate subtopics are shown; |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3827 show the children in the second to last topic, and completely |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3828 close the last one. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3829 \(allout-expose-topic '(-2 : -1 *)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3830 Expose children and grandchildren of all topics at current |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3831 level except the last two; expose children of the second to |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3832 last and completely open the last one." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3833 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3834 (interactive "xExposure spec: ") |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3835 (if (not (listp spec)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3836 nil |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3837 (let ((depth (allout-depth)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3838 (max-pos 0) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3839 prev-elem curr-elem |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3840 stay done |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3841 snug-back |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3842 ) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3843 (while spec |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3844 (setq prev-elem curr-elem |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3845 curr-elem (car spec) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3846 spec (cdr spec)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3847 (cond ; Do current element: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3848 ((null curr-elem) nil) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3849 ((symbolp curr-elem) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3850 (cond ((eq curr-elem '*) (allout-show-current-subtree) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3851 (if (> allout-recent-end-of-subtree max-pos) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3852 (setq max-pos allout-recent-end-of-subtree))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3853 ((eq curr-elem '+) (allout-show-current-branches) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3854 (if (> allout-recent-end-of-subtree max-pos) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3855 (setq max-pos allout-recent-end-of-subtree))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3856 ((eq curr-elem '-) (allout-show-current-entry)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3857 ((eq curr-elem ':) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3858 (setq stay t) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3859 ;; Expand the `repeat' spec to an explicit version, |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3860 ;; w.r.t. remaining siblings: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3861 (let ((residue ; = # of sibs not covered by remaining spec |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3862 ;; Dang - could be nice to make use of the chart, sigh: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3863 (- (length (allout-chart-siblings)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3864 (length spec)))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3865 (if (< 0 residue) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3866 ;; Some residue - cover it with prev-elem: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3867 (setq spec (append (make-list residue prev-elem) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3868 spec))))))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3869 ((numberp curr-elem) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3870 (if (and (>= 0 curr-elem) (allout-visible-p)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3871 (save-excursion (allout-hide-current-subtree t) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3872 (if (> 0 curr-elem) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3873 nil |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3874 (if (> allout-recent-end-of-subtree max-pos) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3875 (setq max-pos |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3876 allout-recent-end-of-subtree))))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3877 (if (> (abs curr-elem) 0) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3878 (progn (allout-show-children (abs curr-elem)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3879 (if (> allout-recent-end-of-subtree max-pos) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3880 (setq max-pos allout-recent-end-of-subtree))))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3881 ((listp curr-elem) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3882 (if (allout-descend-to-depth (1+ depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3883 (let ((got (allout-expose-topic curr-elem))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3884 (if (and got (> got max-pos)) (setq max-pos got)))))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3885 (cond (stay (setq stay nil)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3886 ((listp (car spec)) nil) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3887 ((> max-pos (point)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3888 ;; Capitalize on max-pos state to get us nearer next sibling: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3889 (progn (goto-char (min (point-max) max-pos)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3890 (allout-next-heading))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3891 ((allout-next-sibling depth)))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3892 max-pos))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3893 ;;;_ > allout-old-expose-topic (spec &rest followers) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3894 (defun allout-old-expose-topic (spec &rest followers) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3895 "Dictate wholesale exposure scheme for current topic, according to SPEC. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3896 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3897 SPEC is either a number or a list. Optional successive args |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3898 dictate exposure for subsequent siblings of current topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3899 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3900 A simple spec (either a number, a special symbol, or the null list) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3901 dictates the overall exposure for a topic. Non null lists are |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3902 composite specs whose first element dictates the overall exposure for |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3903 a topic, with the subsequent elements in the list interpreted as specs |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3904 that dictate the exposure for the successive offspring of the topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3905 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3906 Simple (numeric and null-list) specs are interpreted as follows: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3907 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3908 - Numbers indicate the relative depth to open the corresponding topic: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3909 - negative numbers force the topic to be close before opening to the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3910 absolute value of the number. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3911 - positive numbers just open to the relative depth indicated by the number. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3912 - 0 just closes |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3913 - `*' completely opens the topic, including bodies. |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3914 - `+' shows all the sub headers, but not the bodies |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3915 - `-' exposes the body and immediate offspring of the corresponding topic. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3916 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3917 If the spec is a list, the first element must be a number, which |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3918 dictates the exposure depth of the topic as a whole. Subsequent |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3919 elements of the list are nested SPECs, dictating the specific exposure |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3920 for the corresponding offspring of the topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3921 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3922 Optional FOLLOWERS arguments dictate exposure for succeeding siblings." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3923 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3924 (interactive "xExposure spec: ") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3925 (let ((depth (allout-current-depth)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3926 done |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3927 max-pos) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3928 (cond ((null spec) nil) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3929 ((symbolp spec) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3930 (if (eq spec '*) (allout-show-current-subtree)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3931 (if (eq spec '+) (allout-show-current-branches)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3932 (if (eq spec '-) (allout-show-current-entry))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3933 ((numberp spec) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3934 (if (>= 0 spec) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3935 (save-excursion (allout-hide-current-subtree t) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3936 (end-of-line) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3937 (if (or (not max-pos) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3938 (> (point) max-pos)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3939 (setq max-pos (point))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3940 (if (> 0 spec) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3941 (setq spec (* -1 spec))))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3942 (if (> spec 0) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3943 (allout-show-children spec))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3944 ((listp spec) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3945 ;(let ((got (allout-old-expose-topic (car spec)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3946 ; (if (and got (or (not max-pos) (> got max-pos))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3947 ; (setq max-pos got))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3948 (let ((new-depth (+ (allout-current-depth) 1)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3949 got) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3950 (setq max-pos (allout-old-expose-topic (car spec))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3951 (setq spec (cdr spec)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3952 (if (and spec |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3953 (allout-descend-to-depth new-depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3954 (not (allout-hidden-p))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3955 (progn (setq got (apply 'allout-old-expose-topic spec)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3956 (if (and got (or (not max-pos) (> got max-pos))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3957 (setq max-pos got))))))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3958 (while (and followers |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3959 (progn (if (and max-pos (< (point) max-pos)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3960 (progn (goto-char max-pos) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3961 (setq max-pos nil))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3962 (end-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3963 (allout-next-sibling depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3964 (allout-old-expose-topic (car followers)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3965 (setq followers (cdr followers))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3966 max-pos)) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3967 (make-obsolete 'allout-old-expose-topic |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3968 "use `allout-expose-topic' (with different schema format) instead." |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3969 "19.23") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3970 ;;;_ > allout-new-exposure '() |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3971 (defmacro allout-new-exposure (&rest spec) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3972 "Literal frontend for `allout-expose-topic', doesn't evaluate arguments. |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3973 Some arguments that would need to be quoted in `allout-expose-topic' |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3974 need not be quoted in `allout-new-exposure'. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3975 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3976 Cursor is left at start position. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3977 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3978 Use this instead of obsolete `allout-exposure'. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3979 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3980 Examples: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3981 \(allout-exposure (-1 () () () 1) 0) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3982 Close current topic at current level so only the immediate |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3983 subtopics are shown, except also show the children of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3984 third subtopic; and close the next topic at the current level. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3985 \(allout-exposure : -1 0) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3986 Close all topics at current level to expose only their |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3987 immediate children, except for the last topic at the current |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
3988 level, in which even its immediate children are hidden. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3989 \(allout-exposure -2 : -1 *) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3990 Expose children and grandchildren of first topic at current |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3991 level, and expose children of subsequent topics at current |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3992 level *except* for the last, which should be opened completely." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3993 (list 'save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3994 '(if (not (or (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3995 (allout-next-heading))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3996 (error "allout-new-exposure: Can't find any outline topics")) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3997 (list 'allout-expose-topic (list 'quote spec)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3998 ;;;_ > allout-exposure '() |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3999 (defmacro allout-exposure (&rest spec) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4000 "Literal frontend for `allout-old-expose-topic', doesn't evaluate arguments |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4001 and retains start position." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4002 (list 'save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4003 '(if (not (or (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4004 (allout-next-heading))) |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
4005 (error "Can't find any outline topics")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4006 (cons 'allout-old-expose-topic |
29490 | 4007 (mapcar (function (lambda (x) (list 'quote x))) spec)))) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4008 (make-obsolete 'allout-exposure 'allout-new-exposure "19.23") |
29490 | 4009 |
4010 ;;;_ #7 Systematic outline presentation - copying, printing, flattening | |
4011 | |
4012 ;;;_ - Mapping and processing of topics | |
4013 ;;;_ ( See also Subtree Charting, in Navigation code.) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4014 ;;;_ > allout-stringify-flat-index (flat-index) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4015 (defun allout-stringify-flat-index (flat-index &optional context) |
29490 | 4016 "Convert list representing section/subsection/... to document string. |
4017 | |
4018 Optional arg CONTEXT indicates interior levels to include." | |
4019 (let ((delim ".") | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
4020 result |
29490 | 4021 numstr |
4022 (context-depth (or (and context 2) 1))) | |
4023 ;; Take care of the explicit context: | |
4024 (while (> context-depth 0) | |
4025 (setq numstr (int-to-string (car flat-index)) | |
4026 flat-index (cdr flat-index) | |
4027 result (if flat-index | |
4028 (cons delim (cons numstr result)) | |
4029 (cons numstr result)) | |
4030 context-depth (if flat-index (1- context-depth) 0))) | |
4031 (setq delim " ") | |
4032 ;; Take care of the indentation: | |
4033 (if flat-index | |
4034 (progn | |
4035 (while flat-index | |
4036 (setq result | |
4037 (cons delim | |
4038 (cons (make-string | |
4039 (1+ (truncate (if (zerop (car flat-index)) | |
4040 1 | |
4041 (log10 (car flat-index))))) | |
4042 ? ) | |
4043 result))) | |
4044 (setq flat-index (cdr flat-index))) | |
4045 ;; Dispose of single extra delim: | |
4046 (setq result (cdr result)))) | |
4047 (apply 'concat result))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4048 ;;;_ > allout-stringify-flat-index-plain (flat-index) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4049 (defun allout-stringify-flat-index-plain (flat-index) |
29490 | 4050 "Convert list representing section/subsection/... to document string." |
4051 (let ((delim ".") | |
4052 result) | |
4053 (while flat-index | |
4054 (setq result (cons (int-to-string (car flat-index)) | |
4055 (if result | |
4056 (cons delim result)))) | |
4057 (setq flat-index (cdr flat-index))) | |
4058 (apply 'concat result))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4059 ;;;_ > allout-stringify-flat-index-indented (flat-index) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4060 (defun allout-stringify-flat-index-indented (flat-index) |
29490 | 4061 "Convert list representing section/subsection/... to document string." |
4062 (let ((delim ".") | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
4063 result |
29490 | 4064 numstr) |
4065 ;; Take care of the explicit context: | |
4066 (setq numstr (int-to-string (car flat-index)) | |
4067 flat-index (cdr flat-index) | |
4068 result (if flat-index | |
4069 (cons delim (cons numstr result)) | |
4070 (cons numstr result))) | |
4071 (setq delim " ") | |
4072 ;; Take care of the indentation: | |
4073 (if flat-index | |
4074 (progn | |
4075 (while flat-index | |
4076 (setq result | |
4077 (cons delim | |
4078 (cons (make-string | |
4079 (1+ (truncate (if (zerop (car flat-index)) | |
4080 1 | |
4081 (log10 (car flat-index))))) | |
4082 ? ) | |
4083 result))) | |
4084 (setq flat-index (cdr flat-index))) | |
4085 ;; Dispose of single extra delim: | |
4086 (setq result (cdr result)))) | |
4087 (apply 'concat result))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4088 ;;;_ > allout-listify-exposed (&optional start end format) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4089 (defun allout-listify-exposed (&optional start end format) |
29490 | 4090 |
4091 "Produce a list representing exposed topics in current region. | |
4092 | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4093 This list can then be used by `allout-process-exposed' to manipulate |
29490 | 4094 the subject region. |
4095 | |
4096 Optional START and END indicate bounds of region. | |
4097 | |
4098 optional arg, FORMAT, designates an alternate presentation form for | |
4099 the prefix: | |
4100 | |
4101 list - Present prefix as numeric section.subsection..., starting with | |
4102 section indicated by the list, innermost nesting first. | |
4103 `indent' \(symbol) - Convert header prefixes to all white space, | |
4104 except for distinctive bullets. | |
4105 | |
4106 The elements of the list produced are lists that represents a topic | |
4107 header and body. The elements of that list are: | |
4108 | |
4109 - a number representing the depth of the topic, | |
4110 - a string representing the header-prefix, including trailing whitespace and | |
4111 bullet. | |
4112 - a string representing the bullet character, | |
4113 - and a series of strings, each containing one line of the exposed | |
4114 portion of the topic entry." | |
4115 | |
4116 (interactive "r") | |
4117 (save-excursion | |
4118 (let* | |
4119 ;; state vars: | |
4120 (strings prefix pad result depth new-depth out gone-out bullet beg | |
4121 next done) | |
4122 | |
4123 (goto-char start) | |
4124 (beginning-of-line) | |
4125 ;; Goto initial topic, and register preceeding stuff, if any: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4126 (if (> (allout-goto-prefix) start) |
29490 | 4127 ;; First topic follows beginning point - register preliminary stuff: |
4128 (setq result (list (list 0 "" nil | |
4129 (buffer-substring start (1- (point))))))) | |
4130 (while (and (not done) | |
4131 (not (eobp)) ; Loop until we've covered the region. | |
4132 (not (> (point) end))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4133 (setq depth (allout-recent-depth) ; Current topics depth, |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4134 bullet (allout-recent-bullet) ; ... bullet, |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4135 prefix (allout-recent-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4136 beg (progn (allout-end-of-prefix t) (point))) ; and beginning. |
29490 | 4137 (setq done ; The boundary for the current topic: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4138 (not (allout-next-visible-heading 1))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4139 (setq new-depth (allout-recent-depth)) |
29490 | 4140 (setq gone-out out |
4141 out (< new-depth depth)) | |
4142 (beginning-of-line) | |
4143 (setq next (point)) | |
4144 (goto-char beg) | |
4145 (setq strings nil) | |
4146 (while (> next (point)) ; Get all the exposed text in | |
4147 (setq strings | |
4148 (cons (buffer-substring | |
4149 beg | |
4150 ;To hidden text or end of line: | |
4151 (progn | |
4152 (search-forward "\r" | |
4153 (save-excursion (end-of-line) | |
4154 (point)) | |
4155 1) | |
4156 (if (= (preceding-char) ?\r) | |
4157 (1- (point)) | |
4158 (point)))) | |
4159 strings)) | |
4160 (if (< (point) next) ; Resume from after hid text, if any. | |
4161 (forward-line 1)) | |
4162 (setq beg (point))) | |
4163 ;; Accumulate list for this topic: | |
4164 (setq strings (nreverse strings)) | |
4165 (setq result | |
4166 (cons | |
4167 (if format | |
4168 (let ((special (if (string-match | |
4169 (regexp-quote bullet) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4170 allout-distinctive-bullets-string) |
29490 | 4171 bullet))) |
4172 (cond ((listp format) | |
4173 (list depth | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4174 (if allout-abbreviate-flattened-numbering |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4175 (allout-stringify-flat-index format |
29490 | 4176 gone-out) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4177 (allout-stringify-flat-index-plain |
29490 | 4178 format)) |
4179 strings | |
4180 special)) | |
4181 ((eq format 'indent) | |
4182 (if special | |
4183 (list depth | |
4184 (concat (make-string (1+ depth) ? ) | |
4185 (substring prefix -1)) | |
4186 strings) | |
4187 (list depth | |
4188 (make-string depth ? ) | |
4189 strings))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4190 (t (error "allout-listify-exposed: %s %s" |
29490 | 4191 "invalid format" format)))) |
4192 (list depth prefix strings)) | |
4193 result)) | |
4194 ;; Reasses format, if any: | |
4195 (if (and format (listp format)) | |
4196 (cond ((= new-depth depth) | |
4197 (setq format (cons (1+ (car format)) | |
4198 (cdr format)))) | |
4199 ((> new-depth depth) ; descending - assume by 1: | |
4200 (setq format (cons 1 format))) | |
4201 (t | |
4202 ; Pop the residue: | |
4203 (while (< new-depth depth) | |
4204 (setq format (cdr format)) | |
4205 (setq depth (1- depth))) | |
4206 ; And increment the current one: | |
4207 (setq format | |
4208 (cons (1+ (or (car format) | |
4209 -1)) | |
4210 (cdr format))))))) | |
4211 ;; Put the list with first at front, to last at back: | |
4212 (nreverse result)))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4213 ;;;_ > allout-process-exposed (&optional func from to frombuf |
29490 | 4214 ;;; tobuf format) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4215 (defun allout-process-exposed (&optional func from to frombuf tobuf |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4216 format start-num) |
29490 | 4217 "Map function on exposed parts of current topic; results to another buffer. |
4218 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4219 Apply FUNC to exposed portions FROM position TO position in buffer |
29490 | 4220 FROMBUF to buffer TOBUF. Sixth optional arg, FORMAT, designates an |
4221 alternate presentation form: | |
4222 | |
4223 `flat' - Present prefix as numeric section.subsection..., starting with | |
4224 section indicated by the start-num, innermost nesting first. | |
4225 X`flat-indented' - Prefix is like `flat' for first topic at each | |
4226 X level, but subsequent topics have only leaf topic | |
4227 X number, padded with blanks to line up with first. | |
4228 `indent' \(symbol) - Convert header prefixes to all white space, | |
4229 except for distinctive bullets. | |
4230 | |
4231 Defaults: | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4232 FUNC: `allout-insert-listified' |
29490 | 4233 FROM: region start, if region active, else start of buffer |
4234 TO: region end, if region active, else end of buffer | |
4235 FROMBUF: current buffer | |
4236 TOBUF: buffer name derived: \"*current-buffer-name exposed*\" | |
4237 FORMAT: nil" | |
4238 | |
4239 ; Resolve arguments, | |
4240 ; defaulting if necessary: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4241 (if (not func) (setq func 'allout-insert-listified)) |
29490 | 4242 (if (not (and from to)) |
4243 (if (my-region-active-p) | |
4244 (setq from (region-beginning) to (region-end)) | |
4245 (setq from (point-min) to (point-max)))) | |
4246 (if frombuf | |
4247 (if (not (bufferp frombuf)) | |
4248 ;; Specified but not a buffer - get it: | |
4249 (let ((got (get-buffer frombuf))) | |
4250 (if (not got) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4251 (error (concat "allout-process-exposed: source buffer " |
29490 | 4252 frombuf |
4253 " not found.")) | |
4254 (setq frombuf got)))) | |
4255 ;; not specified - default it: | |
4256 (setq frombuf (current-buffer))) | |
4257 (if tobuf | |
4258 (if (not (bufferp tobuf)) | |
4259 (setq tobuf (get-buffer-create tobuf))) | |
4260 ;; not specified - default it: | |
4261 (setq tobuf (concat "*" (buffer-name frombuf) " exposed*"))) | |
4262 (if (listp format) | |
4263 (nreverse format)) | |
4264 | |
4265 (let* ((listified | |
4266 (progn (set-buffer frombuf) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4267 (allout-listify-exposed from to format)))) |
29490 | 4268 (set-buffer tobuf) |
4269 (mapcar func listified) | |
4270 (pop-to-buffer tobuf))) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4271 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4272 ;;;_ - Copy exposed |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4273 ;;;_ > allout-insert-listified (listified) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4274 (defun allout-insert-listified (listified) |
29490 | 4275 "Insert contents of listified outline portion in current buffer. |
4276 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4277 LISTIFIED is a list representing each topic header and body: |
29490 | 4278 |
4279 \`(depth prefix text)' | |
4280 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4281 or |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4282 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4283 \`(depth prefix text bullet-plus)' |
29490 | 4284 |
4285 If `bullet-plus' is specified, it is inserted just after the entire prefix." | |
4286 (setq listified (cdr listified)) | |
4287 (let ((prefix (prog1 | |
4288 (car listified) | |
4289 (setq listified (cdr listified)))) | |
4290 (text (prog1 | |
4291 (car listified) | |
4292 (setq listified (cdr listified)))) | |
4293 (bullet-plus (car listified))) | |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4294 (insert prefix) |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4295 (if bullet-plus (insert (concat " " bullet-plus))) |
29490 | 4296 (while text |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4297 (insert (car text)) |
29490 | 4298 (if (setq text (cdr text)) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4299 (insert "\n"))) |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4300 (insert "\n"))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4301 ;;;_ > allout-copy-exposed-to-buffer (&optional arg tobuf format) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4302 (defun allout-copy-exposed-to-buffer (&optional arg tobuf format) |
29490 | 4303 "Duplicate exposed portions of current outline to another buffer. |
4304 | |
4305 Other buffer has current buffers name with \" exposed\" appended to it. | |
4306 | |
4307 With repeat count, copy the exposed parts of only the current topic. | |
4308 | |
4309 Optional second arg TOBUF is target buffer name. | |
4310 | |
4311 Optional third arg FORMAT, if non-nil, symbolically designates an | |
4312 alternate presentation format for the outline: | |
4313 | |
4314 `flat' - Convert topic header prefixes to numeric | |
4315 section.subsection... identifiers. | |
4316 `indent' - Convert header prefixes to all white space, except for | |
4317 distinctive bullets. | |
4318 `indent-flat' - The best of both - only the first of each level has | |
4319 the full path, the rest have only the section number | |
4320 of the leaf, preceded by the right amount of indentation." | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4321 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4322 (interactive "P") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4323 (if (not tobuf) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4324 (setq tobuf (get-buffer-create (concat "*" (buffer-name) " exposed*")))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4325 (let* ((start-pt (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4326 (beg (if arg (allout-back-to-current-heading) (point-min))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4327 (end (if arg (allout-end-of-current-subtree) (point-max))) |
29490 | 4328 (buf (current-buffer)) |
4329 (start-list ())) | |
4330 (if (eq format 'flat) | |
4331 (setq format (if arg (save-excursion | |
4332 (goto-char beg) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4333 (allout-topic-flat-index)) |
29490 | 4334 '(1)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4335 (save-excursion (set-buffer tobuf)(erase-buffer)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4336 (allout-process-exposed 'allout-insert-listified |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4337 beg |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4338 end |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4339 (current-buffer) |
29490 | 4340 tobuf |
4341 format start-list) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4342 (goto-char (point-min)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4343 (pop-to-buffer buf) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4344 (goto-char start-pt))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4345 ;;;_ > allout-flatten-exposed-to-buffer (&optional arg tobuf) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4346 (defun allout-flatten-exposed-to-buffer (&optional arg tobuf) |
29490 | 4347 "Present numeric outline of outline's exposed portions in another buffer. |
4348 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4349 The resulting outline is not compatible with outline mode - use |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4350 `allout-copy-exposed-to-buffer' if you want that. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4351 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4352 Use `allout-indented-exposed-to-buffer' for indented presentation. |
29490 | 4353 |
4354 With repeat count, copy the exposed portions of only current topic. | |
4355 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4356 Other buffer has current buffer's name with \" exposed\" appended to |
29490 | 4357 it, unless optional second arg TOBUF is specified, in which case it is |
4358 used verbatim." | |
4359 (interactive "P") | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4360 (allout-copy-exposed-to-buffer arg tobuf 'flat)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4361 ;;;_ > allout-indented-exposed-to-buffer (&optional arg tobuf) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4362 (defun allout-indented-exposed-to-buffer (&optional arg tobuf) |
29490 | 4363 "Present indented outline of outline's exposed portions in another buffer. |
4364 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4365 The resulting outline is not compatible with outline mode - use |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4366 `allout-copy-exposed-to-buffer' if you want that. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4367 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4368 Use `allout-flatten-exposed-to-buffer' for numeric sectional presentation. |
29490 | 4369 |
4370 With repeat count, copy the exposed portions of only current topic. | |
4371 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4372 Other buffer has current buffer's name with \" exposed\" appended to |
29490 | 4373 it, unless optional second arg TOBUF is specified, in which case it is |
4374 used verbatim." | |
4375 (interactive "P") | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4376 (allout-copy-exposed-to-buffer arg tobuf 'indent)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4377 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4378 ;;;_ - LaTeX formatting |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4379 ;;;_ > allout-latex-verb-quote (string &optional flow) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4380 (defun allout-latex-verb-quote (string &optional flow) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4381 "Return copy of STRING for literal reproduction across latex processing. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4382 Expresses the original characters \(including carriage returns) of the |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4383 string across latex processing." |
29490 | 4384 (mapconcat (function |
4385 (lambda (char) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4386 (cond ((memq char '(?\\ ?$ ?% ?# ?& ?{ ?} ?_ ?^ ?- ?*)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4387 (concat "\\char" (number-to-string char) "{}")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4388 ((= char ?\n) "\\\\") |
29490 | 4389 (t (char-to-string char))))) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4390 string |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4391 "")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4392 ;;;_ > allout-latex-verbatim-quote-curr-line () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4393 (defun allout-latex-verbatim-quote-curr-line () |
29490 | 4394 "Express line for exact \(literal) representation across latex processing. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4395 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4396 Adjust line contents so it is unaltered \(from the original line) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
4397 across latex processing, within the context of a `verbatim' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4398 environment. Leaves point at the end of the line." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4399 (beginning-of-line) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4400 (let ((beg (point)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4401 (end (progn (end-of-line)(point)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4402 (goto-char beg) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4403 (while (re-search-forward "\\\\" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4404 ;;"\\\\\\|\\{\\|\\}\\|\\_\\|\\$\\|\\\"\\|\\&\\|\\^\\|\\-\\|\\*\\|#" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4405 end ; bounded by end-of-line |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4406 1) ; no matches, move to end & return nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4407 (goto-char (match-beginning 0)) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4408 (insert "\\") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4409 (setq end (1+ end)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4410 (goto-char (1+ (match-end 0)))))) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4411 ;;;_ > allout-insert-latex-header (buffer) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4412 (defun allout-insert-latex-header (buffer) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4413 "Insert initial latex commands at point in BUFFER." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4414 ;; Much of this is being derived from the stuff in appendix of E in |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4415 ;; the TeXBook, pg 421. |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4416 (set-buffer buffer) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4417 (let ((doc-style (format "\n\\documentstyle{%s}\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4418 "report")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4419 (page-numbering (if allout-number-pages |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4420 "\\pagestyle{empty}\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4421 "")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4422 (linesdef (concat "\\def\\beginlines{" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4423 "\\par\\begingroup\\nobreak\\medskip" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4424 "\\parindent=0pt\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4425 " \\kern1pt\\nobreak \\obeylines \\obeyspaces " |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4426 "\\everypar{\\strut}}\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4427 "\\def\\endlines{" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4428 "\\kern1pt\\endgroup\\medbreak\\noindent}\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4429 (titlecmd (format "\\newcommand{\\titlecmd}[1]{{%s #1}}\n" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4430 allout-title-style)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4431 (labelcmd (format "\\newcommand{\\labelcmd}[1]{{%s #1}}\n" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4432 allout-label-style)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4433 (headlinecmd (format "\\newcommand{\\headlinecmd}[1]{{%s #1}}\n" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4434 allout-head-line-style)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4435 (bodylinecmd (format "\\newcommand{\\bodylinecmd}[1]{{%s #1}}\n" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4436 allout-body-line-style)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4437 (setlength (format "%s%s%s%s" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4438 "\\newlength{\\stepsize}\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4439 "\\setlength{\\stepsize}{" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4440 allout-indent |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4441 "}\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4442 (oneheadline (format "%s%s%s%s%s%s%s" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4443 "\\newcommand{\\OneHeadLine}[3]{%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4444 "\\noindent%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4445 "\\hspace*{#2\\stepsize}%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4446 "\\labelcmd{#1}\\hspace*{.2cm}" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4447 "\\headlinecmd{#3}\\\\[" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4448 allout-line-skip |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4449 "]\n}\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4450 (onebodyline (format "%s%s%s%s%s%s" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4451 "\\newcommand{\\OneBodyLine}[2]{%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4452 "\\noindent%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4453 "\\hspace*{#1\\stepsize}%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4454 "\\bodylinecmd{#2}\\\\[" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4455 allout-line-skip |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4456 "]\n}\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4457 (begindoc "\\begin{document}\n\\begin{center}\n") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4458 (title (format "%s%s%s%s" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4459 "\\titlecmd{" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4460 (allout-latex-verb-quote (if allout-title |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4461 (condition-case err |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4462 (eval allout-title) |
29490 | 4463 ('error "<unnamed buffer>")) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4464 "Unnamed Outline")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4465 "}\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4466 "\\end{center}\n\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4467 (hsize "\\hsize = 7.5 true in\n") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4468 (hoffset "\\hoffset = -1.5 true in\n") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4469 (vspace "\\vspace{.1cm}\n\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4470 (insert (concat doc-style |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4471 page-numbering |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4472 titlecmd |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4473 labelcmd |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4474 headlinecmd |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4475 bodylinecmd |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4476 setlength |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4477 oneheadline |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4478 onebodyline |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4479 begindoc |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4480 title |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4481 hsize |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4482 hoffset |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4483 vspace) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4484 ))) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4485 ;;;_ > allout-insert-latex-trailer (buffer) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4486 (defun allout-insert-latex-trailer (buffer) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4487 "Insert concluding latex commands at point in BUFFER." |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4488 (set-buffer buffer) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4489 (insert "\n\\end{document}\n")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4490 ;;;_ > allout-latexify-one-item (depth prefix bullet text) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4491 (defun allout-latexify-one-item (depth prefix bullet text) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4492 "Insert LaTeX commands for formatting one outline item. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4493 |
29490 | 4494 Args are the topics numeric DEPTH, the header PREFIX lead string, the |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4495 BULLET string, and a list of TEXT strings for the body." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4496 (let* ((head-line (if text (car text))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4497 (body-lines (cdr text)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4498 (curr-line) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4499 body-content bop) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4500 ; Do the head line: |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
4501 (insert (concat "\\OneHeadLine{\\verb\1 " |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4502 (allout-latex-verb-quote bullet) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4503 "\1}{" |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4504 depth |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4505 "}{\\verb\1 " |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4506 (if head-line |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4507 (allout-latex-verb-quote head-line) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4508 "") |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4509 "\1}\n")) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4510 (if (not body-lines) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4511 nil |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4512 ;;(insert "\\beginlines\n") |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4513 (insert "\\begin{verbatim}\n") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4514 (while body-lines |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4515 (setq curr-line (car body-lines)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4516 (if (and (not body-content) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4517 (not (string-match "^\\s-*$" curr-line))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4518 (setq body-content t)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4519 ; Mangle any occurrences of |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4520 ; "\end{verbatim}" in text, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4521 ; it's special: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4522 (if (and body-content |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4523 (setq bop (string-match "\\end{verbatim}" curr-line))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4524 (setq curr-line (concat (substring curr-line 0 bop) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4525 ">" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4526 (substring curr-line bop)))) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4527 ;;(insert "|" (car body-lines) "|") |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4528 (insert curr-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4529 (allout-latex-verbatim-quote-curr-line) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4530 (insert "\n") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4531 (setq body-lines (cdr body-lines))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4532 (if body-content |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4533 (setq body-content nil) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4534 (forward-char -1) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4535 (insert "\\ ") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4536 (forward-char 1)) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4537 ;;(insert "\\endlines\n") |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4538 (insert "\\end{verbatim}\n") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4539 ))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4540 ;;;_ > allout-latexify-exposed (arg &optional tobuf) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4541 (defun allout-latexify-exposed (arg &optional tobuf) |
29490 | 4542 "Format current topics exposed portions to TOBUF for latex processing. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4543 TOBUF defaults to a buffer named the same as the current buffer, but |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4544 with \"*\" prepended and \" latex-formed*\" appended. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4545 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4546 With repeat count, copy the exposed portions of entire buffer." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4547 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4548 (interactive "P") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4549 (if (not tobuf) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4550 (setq tobuf |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4551 (get-buffer-create (concat "*" (buffer-name) " latexified*")))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4552 (let* ((start-pt (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4553 (beg (if arg (point-min) (allout-back-to-current-heading))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4554 (end (if arg (point-max) (allout-end-of-current-subtree))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4555 (buf (current-buffer))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4556 (set-buffer tobuf) |
3430 | 4557 (erase-buffer) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4558 (allout-insert-latex-header tobuf) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4559 (goto-char (point-max)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4560 (allout-process-exposed 'allout-latexify-one-item |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4561 beg |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4562 end |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4563 buf |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4564 tobuf) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4565 (goto-char (point-max)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4566 (allout-insert-latex-trailer tobuf) |
3430 | 4567 (goto-char (point-min)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4568 (pop-to-buffer buf) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4569 (goto-char start-pt))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4570 |
29490 | 4571 ;;;_ #8 miscellaneous |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4572 ;;;_ > allout-mark-topic () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4573 (defun allout-mark-topic () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4574 "Put the region around topic currently containing point." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4575 (interactive) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4576 (beginning-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4577 (allout-goto-prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4578 (push-mark (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4579 (allout-end-of-current-subtree) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4580 (exchange-point-and-mark)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4581 ;;;_ > outlineify-sticky () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4582 ;; outlinify-sticky is correct spelling; provide this alias for sticklers: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4583 (defalias 'outlinify-sticky 'outlineify-sticky) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4584 (defun outlineify-sticky (&optional arg) |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
4585 "Activate outline mode and establish file var so it is started subsequently. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4586 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4587 See doc-string for `allout-layout' and `allout-init' for details on |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4588 setup for auto-startup." |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4589 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4590 (interactive "P") |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4591 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4592 (allout-mode t) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4593 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4594 (save-excursion |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4595 (goto-char (point-min)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4596 (if (looking-at allout-regexp) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4597 t |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4598 (allout-open-topic 2) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4599 (insert (concat "Dummy outline topic header - see" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4600 "`allout-mode' docstring: `^Hm'.")) |
29490 | 4601 (forward-line 1) |
3430 | 4602 (goto-char (point-max)) |
29490 | 4603 (open-line 1) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4604 (allout-open-topic 0) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4605 (insert "Local emacs vars.\n") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4606 (allout-open-topic 1) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4607 (insert "(`allout-layout' is for allout.el allout-mode)\n") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4608 (allout-open-topic 0) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4609 (insert "Local variables:\n") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4610 (allout-open-topic 0) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4611 (insert (format "allout-layout: %s\n" |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4612 (or allout-layout |
29490 | 4613 '(-1 : 0)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4614 (allout-open-topic 0) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
4615 (insert "End:\n")))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4616 ;;;_ > solicit-char-in-string (prompt string &optional do-defaulting) |
3430 | 4617 (defun solicit-char-in-string (prompt string &optional do-defaulting) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4618 "Solicit (with first arg PROMPT) choice of a character from string STRING. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4619 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4620 Optional arg DO-DEFAULTING indicates to accept empty input (CR)." |
3430 | 4621 |
4622 (let ((new-prompt prompt) | |
4623 got) | |
4624 | |
4625 (while (not got) | |
4626 (message "%s" new-prompt) | |
4627 | |
4628 ;; We do our own reading here, so we can circumvent, eg, special | |
29490 | 4629 ;; treatment for `?' character. (Oughta use minibuffer keymap instead.) |
3430 | 4630 (setq got |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4631 (char-to-string (let ((cursor-in-echo-area nil)) (read-char)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4632 |
29490 | 4633 (setq got |
4634 (cond ((string-match (regexp-quote got) string) got) | |
4635 ((and do-defaulting (string= got "\r")) | |
4636 ;; Return empty string to default: | |
4637 "") | |
4638 ((string= got "\C-g") (signal 'quit nil)) | |
4639 (t | |
4640 (setq new-prompt (concat prompt | |
4641 got | |
4642 " ...pick from: " | |
4643 string | |
4644 "")) | |
4645 nil)))) | |
4646 ;; got something out of loop - return it: | |
4647 got) | |
3430 | 4648 ) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4649 ;;;_ > regexp-sans-escapes (string) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4650 (defun regexp-sans-escapes (regexp &optional successive-backslashes) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4651 "Return a copy of REGEXP with all character escapes stripped out. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4652 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4653 Representations of actual backslashes - '\\\\\\\\' - are left as a |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4654 single backslash. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4655 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4656 Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4657 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4658 (if (string= regexp "") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4659 "" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4660 ;; Set successive-backslashes to number if current char is |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4661 ;; backslash, or else to nil: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4662 (setq successive-backslashes |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4663 (if (= (aref regexp 0) ?\\) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4664 (if successive-backslashes (1+ successive-backslashes) 1) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4665 nil)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4666 (if (or (not successive-backslashes) (= 2 successive-backslashes)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4667 ;; Include first char: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4668 (concat (substring regexp 0 1) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4669 (regexp-sans-escapes (substring regexp 1))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4670 ;; Exclude first char, but maintain count: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4671 (regexp-sans-escapes (substring regexp 1) successive-backslashes)))) |
29490 | 4672 ;;;_ > my-region-active-p () |
4673 (defmacro my-region-active-p () | |
4674 (if (fboundp 'region-active-p) | |
4675 '(region-active-p) | |
4676 'mark-active)) | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4677 ;;;_ - add-hook definition for divergent emacsen |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4678 ;;;_ > add-hook (hook function &optional append) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4679 (if (not (fboundp 'add-hook)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4680 (defun add-hook (hook function &optional append) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4681 "Add to the value of HOOK the function FUNCTION unless already present. |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
4682 \(It becomes the first hook on the list unless optional APPEND is non-nil, in |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4683 which case it becomes the last). HOOK should be a symbol, and FUNCTION may be |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4684 any valid function. HOOK's value should be a list of functions, not a single |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4685 function. If HOOK is void, it is first set to nil." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4686 (or (boundp hook) (set hook nil)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4687 (or (if (consp function) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4688 ;; Clever way to tell whether a given lambda-expression |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4689 ;; is equal to anything in the hook. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4690 (let ((tail (assoc (cdr function) (symbol-value hook)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4691 (equal function tail)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4692 (memq function (symbol-value hook))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
4693 (set hook |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4694 (if append |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4695 (nconc (symbol-value hook) (list function)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4696 (cons function (symbol-value hook))))))) |
47127
895cc47caf77
(my-mark-marker): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents:
46161
diff
changeset
|
4697 ;;;_ : my-mark-marker to accommodate divergent emacsen: |
29490 | 4698 (defun my-mark-marker (&optional force buffer) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4699 "Accommodate the different signature for mark-marker across Emacsen. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4700 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4701 XEmacs takes two optional args, while GNU Emacs does not, |
29490 | 4702 so pass them along when appropriate." |
48859
1c806f4edc19
(allout-init): Give report also in case auto-activation was inhibited.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48858
diff
changeset
|
4703 (if (featurep 'xemacs) |
29490 | 4704 (mark-marker force buffer) |
4705 (mark-marker))) | |
4706 | |
4707 ;;;_ #9 Under development | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4708 ;;;_ > allout-bullet-isearch (&optional bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4709 (defun allout-bullet-isearch (&optional bullet) |
29490 | 4710 "Isearch \(regexp) for topic with bullet BULLET." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4711 (interactive) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4712 (if (not bullet) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4713 (setq bullet (solicit-char-in-string |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4714 "ISearch for topic with bullet: " |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4715 (regexp-sans-escapes allout-bullets-string)))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
4716 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4717 (let ((isearch-regexp t) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4718 (isearch-string (concat "^" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4719 allout-header-prefix |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4720 "[ \t]*" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4721 bullet))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4722 (isearch-repeat 'forward) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4723 (isearch-mode t))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4724 ;;;_ ? Re hooking up with isearch - use isearch-op-fun rather than |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
4725 ;;; wrapping the isearch functions. |
3430 | 4726 |
4727 ;;;_* Local emacs vars. | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4728 ;;; The following `allout-layout' local variable setting: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4729 ;;; - closes all topics from the first topic to just before the third-to-last, |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4730 ;;; - shows the children of the third to last (config vars) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4731 ;;; - and the second to last (code section), |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4732 ;;; - and closes the last topic (this local-variables section). |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4733 ;;;Local variables: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4734 ;;;allout-layout: (0 : -1 -1 0) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4735 ;;;End: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4736 |
52401 | 4737 ;;; arch-tag: cf38fbc3-c044-450f-8bff-afed8ba5681c |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
4738 ;;; allout.el ends here |