Mercurial > emacs
annotate lisp/obsolete/ooutline.el @ 59384:a1edc5959dcf
* macfns.c: Include sys/param.h.
[TARGET_API_MAC_CARBON] (mac_nav_event_callback): New declaration
and function.
[TARGET_API_MAC_CARBON] (Fx_file_dialog): Use MAXPATHLEN for size
of filename string. Set event callback function when creating
dialog boxes. Add code conversions for filenames. Don't dispose
apple event descriptor record if failed to create it.
* macterm.c: Include sys/param.h.
[USE_CARBON_EVENTS] (mac_handle_window_event): Add handler for
kEventWindowUpdate.
(install_window_handler) [USE_CARBON_EVENTS]: Register it.
(do_ae_open_documents) [TARGET_API_MAC_CARBON]: Get FSRef instead
of FSSpec from apple event descriptor record.
(do_ae_open_documents) [TARGET_API_MAC_CARBON]: Use MAXPATHLEN for
size of filename string.
[TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise.
[TARGET_API_MAC_CARBON] (mac_do_receive_drag): Return error when a
file dialog is in action.
[TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise. Reject
only when there are no filename items. Set background color
before (un)highlighting the window below the dragged items.
(XTread_socket) [!USE_CARBON_EVENTS]: Don't call do_window_update.
author | Steven Tamm <steventamm@mac.com> |
---|---|
date | Thu, 06 Jan 2005 02:53:39 +0000 |
parents | 695cf19ef79e |
children | a1fa16a75bde 375f2633d815 |
rev | line source |
---|---|
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
34456
diff
changeset
|
1 ;;; ooutline.el --- outline mode commands for Emacs |
34456
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
2 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
3 ;; Copyright (C) 1986, 1993, 1994, 1997 Free Software Foundation, Inc. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
4 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
5 ;; Maintainer: FSF |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
6 ;; Keywords: outlines |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
7 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
8 ;; This file is part of GNU Emacs. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
9 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
10 ;; GNU Emacs is free software; you can redistribute it and/or modify |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
11 ;; it under the terms of the GNU General Public License as published by |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
12 ;; the Free Software Foundation; either version 2, or (at your option) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
13 ;; any later version. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
14 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
15 ;; GNU Emacs is distributed in the hope that it will be useful, |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
18 ;; GNU General Public License for more details. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
19 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
20 ;; You should have received a copy of the GNU General Public License |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
23 ;; Boston, MA 02111-1307, USA. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
24 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
25 ;;; Commentary: |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
26 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
27 ;; This package is a major mode for editing outline-format documents. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
28 ;; An outline can be `abstracted' to show headers at any given level, |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
29 ;; with all stuff below hidden. See the Emacs manual for details. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
30 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
31 ;;; Code: |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
32 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
33 ;; Jan '86, Some new features added by Peter Desnoyers and rewritten by RMS. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
34 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
35 (defgroup outlines nil |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
36 "Support for hierarchical outlining" |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
37 :prefix "outline-" |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
38 :group 'editing) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
39 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
40 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
41 (defcustom outline-regexp nil |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
42 "*Regular expression to match the beginning of a heading. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
43 Any line whose beginning matches this regexp is considered to start a heading. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
44 The recommended way to set this is with a Local Variables: list |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
45 in the file it applies to. See also outline-heading-end-regexp." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
46 :type '(choice regexp (const nil)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
47 :group 'outlines) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
48 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
49 ;; Can't initialize this in the defvar above -- some major modes have |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
50 ;; already assigned a local value to it. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
51 (or (default-value 'outline-regexp) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
52 (setq-default outline-regexp "[*\^L]+")) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
38412
diff
changeset
|
53 |
34456
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
54 (defcustom outline-heading-end-regexp "[\n\^M]" |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
55 "*Regular expression to match the end of a heading line. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
56 You can assume that point is at the beginning of a heading when this |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
57 regexp is searched for. The heading ends at the end of the match. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
58 The recommended way to set this is with a \"Local Variables:\" list |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
59 in the file it applies to." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
60 :type 'regexp |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
61 :group 'outlines) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
62 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
63 (defvar outline-mode-prefix-map nil) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
64 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
65 (if outline-mode-prefix-map |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
66 nil |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
67 (setq outline-mode-prefix-map (make-sparse-keymap)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
68 (define-key outline-mode-prefix-map "\C-n" 'outline-next-visible-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
69 (define-key outline-mode-prefix-map "\C-p" 'outline-previous-visible-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
70 (define-key outline-mode-prefix-map "\C-i" 'show-children) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
71 (define-key outline-mode-prefix-map "\C-s" 'show-subtree) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
72 (define-key outline-mode-prefix-map "\C-d" 'hide-subtree) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
73 (define-key outline-mode-prefix-map "\C-u" 'outline-up-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
74 (define-key outline-mode-prefix-map "\C-f" 'outline-forward-same-level) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
75 (define-key outline-mode-prefix-map "\C-b" 'outline-backward-same-level) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
76 (define-key outline-mode-prefix-map "\C-t" 'hide-body) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
77 (define-key outline-mode-prefix-map "\C-a" 'show-all) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
78 (define-key outline-mode-prefix-map "\C-c" 'hide-entry) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
79 (define-key outline-mode-prefix-map "\C-e" 'show-entry) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
80 (define-key outline-mode-prefix-map "\C-l" 'hide-leaves) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
81 (define-key outline-mode-prefix-map "\C-k" 'show-branches) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
82 (define-key outline-mode-prefix-map "\C-q" 'hide-sublevels) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
83 (define-key outline-mode-prefix-map "\C-o" 'hide-other)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
84 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
85 (defvar outline-mode-menu-bar-map nil) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
86 (if outline-mode-menu-bar-map |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
87 nil |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
88 (setq outline-mode-menu-bar-map (make-sparse-keymap)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
89 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
90 (define-key outline-mode-menu-bar-map [hide] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
91 (cons "Hide" (make-sparse-keymap "Hide"))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
92 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
93 (define-key outline-mode-menu-bar-map [hide hide-other] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
94 '("Hide Other" . hide-other)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
95 (define-key outline-mode-menu-bar-map [hide hide-sublevels] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
96 '("Hide Sublevels" . hide-sublevels)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
97 (define-key outline-mode-menu-bar-map [hide hide-subtree] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
98 '("Hide Subtree" . hide-subtree)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
99 (define-key outline-mode-menu-bar-map [hide hide-entry] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
100 '("Hide Entry" . hide-entry)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
101 (define-key outline-mode-menu-bar-map [hide hide-body] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
102 '("Hide Body" . hide-body)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
103 (define-key outline-mode-menu-bar-map [hide hide-leaves] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
104 '("Hide Leaves" . hide-leaves)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
105 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
106 (define-key outline-mode-menu-bar-map [show] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
107 (cons "Show" (make-sparse-keymap "Show"))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
108 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
109 (define-key outline-mode-menu-bar-map [show show-subtree] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
110 '("Show Subtree" . show-subtree)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
111 (define-key outline-mode-menu-bar-map [show show-children] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
112 '("Show Children" . show-children)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
113 (define-key outline-mode-menu-bar-map [show show-branches] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
114 '("Show Branches" . show-branches)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
115 (define-key outline-mode-menu-bar-map [show show-entry] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
116 '("Show Entry" . show-entry)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
117 (define-key outline-mode-menu-bar-map [show show-all] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
118 '("Show All" . show-all)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
119 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
120 (define-key outline-mode-menu-bar-map [headings] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
121 (cons "Headings" (make-sparse-keymap "Headings"))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
122 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
123 (define-key outline-mode-menu-bar-map [headings outline-backward-same-level] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
124 '("Previous Same Level" . outline-backward-same-level)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
125 (define-key outline-mode-menu-bar-map [headings outline-forward-same-level] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
126 '("Next Same Level" . outline-forward-same-level)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
127 (define-key outline-mode-menu-bar-map [headings outline-previous-visible-heading] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
128 '("Previous" . outline-previous-visible-heading)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
129 (define-key outline-mode-menu-bar-map [headings outline-next-visible-heading] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
130 '("Next" . outline-next-visible-heading)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
131 (define-key outline-mode-menu-bar-map [headings outline-up-heading] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
132 '("Up" . outline-up-heading))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
133 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
134 (defvar outline-mode-map nil "") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
135 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
136 (if outline-mode-map |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
137 nil |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
138 (setq outline-mode-map (nconc (make-sparse-keymap) text-mode-map)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
139 (define-key outline-mode-map "\C-c" outline-mode-prefix-map) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
140 (define-key outline-mode-map [menu-bar] outline-mode-menu-bar-map)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
141 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
142 (defcustom outline-minor-mode nil |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
143 "Non-nil if using Outline mode as a minor mode of some other mode." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
144 :type 'boolean |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
145 :group 'outlines) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
146 (make-variable-buffer-local 'outline-minor-mode) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
147 (put 'outline-minor-mode 'permanent-local t) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
148 (or (assq 'outline-minor-mode minor-mode-alist) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
149 (setq minor-mode-alist (append minor-mode-alist |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
150 (list '(outline-minor-mode " Outl"))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
151 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
152 (defvar outline-font-lock-keywords |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
153 '(;; Highlight headings according to the level. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
154 ("^\\([*]+\\)[ \t]*\\([^\n\r]+\\)?[ \t]*[\n\r]" |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
155 (1 font-lock-string-face) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
156 (2 (let ((len (- (match-end 1) (match-beginning 1)))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
157 (or (cdr (assq len '((1 . font-lock-function-name-face) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
158 (2 . font-lock-keyword-face) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
159 (3 . font-lock-comment-face)))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
160 font-lock-variable-name-face)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
161 nil t)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
162 ;; Highlight citations of the form [1] and [Mar94]. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
163 ("\\[\\([[:upper:]][[:alpha:]]+\\)*[0-9]+\\]" . font-lock-type-face)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
164 "Additional expressions to highlight in Outline mode.") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
165 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
166 (defun outline-mode () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
167 "Set major mode for editing outlines with selective display. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
168 Headings are lines which start with asterisks: one for major headings, |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
38412
diff
changeset
|
169 two for subheadings, etc. Lines not starting with asterisks are body lines. |
34456
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
170 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
171 Body text or subheadings under a heading can be made temporarily |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
38412
diff
changeset
|
172 invisible, or visible again. Invisible lines are attached to the end |
34456
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
173 of the heading, so they move with it, if the line is killed and yanked |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
174 back. A heading with text hidden under it is marked with an ellipsis (...). |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
175 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
176 Commands:\\<outline-mode-map> |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
177 \\[outline-next-visible-heading] outline-next-visible-heading move by visible headings |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
178 \\[outline-previous-visible-heading] outline-previous-visible-heading |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
179 \\[outline-forward-same-level] outline-forward-same-level similar but skip subheadings |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
180 \\[outline-backward-same-level] outline-backward-same-level |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
181 \\[outline-up-heading] outline-up-heading move from subheading to heading |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
182 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
183 \\[hide-body] make all text invisible (not headings). |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
184 \\[show-all] make everything in buffer visible. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
185 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
186 The remaining commands are used when point is on a heading line. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
187 They apply to some of the body or subheadings of that heading. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
188 \\[hide-subtree] hide-subtree make body and subheadings invisible. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
189 \\[show-subtree] show-subtree make body and subheadings visible. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
190 \\[show-children] show-children make direct subheadings visible. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
191 No effect on body, or subheadings 2 or more levels down. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
192 With arg N, affects subheadings N levels down. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
193 \\[hide-entry] make immediately following body invisible. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
194 \\[show-entry] make it visible. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
195 \\[hide-leaves] make body under heading and under its subheadings invisible. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
196 The subheadings remain visible. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
197 \\[show-branches] make all subheadings at all levels visible. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
198 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
199 The variable `outline-regexp' can be changed to control what is a heading. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
200 A line is a heading if `outline-regexp' matches something at the |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
201 beginning of the line. The longer the match, the deeper the level. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
202 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
203 Turning on outline mode calls the value of `text-mode-hook' and then of |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
204 `outline-mode-hook', if they are non-nil." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
205 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
206 (kill-all-local-variables) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
207 (setq selective-display t) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
208 (use-local-map outline-mode-map) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
209 (setq mode-name "Outline") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
210 (setq major-mode 'outline-mode) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
211 (define-abbrev-table 'text-mode-abbrev-table ()) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
212 (setq local-abbrev-table text-mode-abbrev-table) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
213 (set-syntax-table text-mode-syntax-table) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
214 (make-local-variable 'paragraph-start) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
215 (setq paragraph-start (concat paragraph-start "\\|\\(" |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
216 outline-regexp "\\)")) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
217 ;; Inhibit auto-filling of header lines. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
218 (make-local-variable 'auto-fill-inhibit-regexp) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
219 (setq auto-fill-inhibit-regexp outline-regexp) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
220 (make-local-variable 'paragraph-separate) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
221 (setq paragraph-separate (concat paragraph-separate "\\|\\(" |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
222 outline-regexp "\\)")) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
223 (make-local-variable 'font-lock-defaults) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
224 (setq font-lock-defaults '(outline-font-lock-keywords t)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
225 (make-local-variable 'change-major-mode-hook) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
226 (add-hook 'change-major-mode-hook 'show-all) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
227 (run-hooks 'text-mode-hook 'outline-mode-hook)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
228 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
229 (defcustom outline-minor-mode-prefix "\C-c@" |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
230 "*Prefix key to use for Outline commands in Outline minor mode. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
231 The value of this variable is checked as part of loading Outline mode. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
232 After that, changing the prefix key requires manipulating keymaps." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
233 :type 'string |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
234 :group 'outlines) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
235 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
236 (defvar outline-minor-mode-map nil) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
237 (if outline-minor-mode-map |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
238 nil |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
239 (setq outline-minor-mode-map (make-sparse-keymap)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
240 (define-key outline-minor-mode-map [menu-bar] |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
241 outline-mode-menu-bar-map) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
242 (define-key outline-minor-mode-map outline-minor-mode-prefix |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
243 outline-mode-prefix-map)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
244 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
245 (or (assq 'outline-minor-mode minor-mode-map-alist) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
246 (setq minor-mode-map-alist |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
247 (cons (cons 'outline-minor-mode outline-minor-mode-map) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
248 minor-mode-map-alist))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
249 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
250 (defun outline-minor-mode (&optional arg) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
251 "Toggle Outline minor mode. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
252 With arg, turn Outline minor mode on if arg is positive, off otherwise. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
253 See the command `outline-mode' for more information on this mode." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
254 (interactive "P") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
255 (setq outline-minor-mode |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
256 (if (null arg) (not outline-minor-mode) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
257 (> (prefix-numeric-value arg) 0))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
258 (if outline-minor-mode |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
259 (progn |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
260 (setq selective-display t) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
261 (run-hooks 'outline-minor-mode-hook)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
262 (setq selective-display nil)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
263 ;; When turning off outline mode, get rid of any ^M's. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
264 (or outline-minor-mode |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
265 (outline-flag-region (point-min) (point-max) ?\n)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
266 (force-mode-line-update)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
267 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
268 (defvar outline-level 'outline-level |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
269 "Function of no args to compute a header's nesting level in an outline. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
270 It can assume point is at the beginning of a header line.") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
271 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
272 ;; This used to count columns rather than characters, but that made ^L |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
273 ;; appear to be at level 2 instead of 1. Columns would be better for |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
274 ;; tab handling, but the default regexp doesn't use tabs, and anyone |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
275 ;; who changes the regexp can also redefine the outline-level variable |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
276 ;; as appropriate. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
277 (defun outline-level () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
278 "Return the depth to which a statement is nested in the outline. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
279 Point must be at the beginning of a header line. This is actually |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
280 the number of characters that `outline-regexp' matches." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
281 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
282 (looking-at outline-regexp) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
283 (- (match-end 0) (match-beginning 0)))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
284 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
285 (defun outline-next-preface () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
286 "Skip forward to just before the next heading line. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
287 If there's no following heading line, stop before the newline |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
288 at the end of the buffer." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
289 (if (re-search-forward (concat "[\n\^M]\\(" outline-regexp "\\)") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
290 nil 'move) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
291 (goto-char (match-beginning 0))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
292 (if (memq (preceding-char) '(?\n ?\^M)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
293 (forward-char -1))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
294 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
295 (defun outline-next-heading () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
296 "Move to the next (possibly invisible) heading line." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
297 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
298 (if (re-search-forward (concat "[\n\^M]\\(" outline-regexp "\\)") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
299 nil 'move) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
300 (goto-char (1+ (match-beginning 0))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
301 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
302 (defun outline-back-to-heading () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
303 "Move to previous heading line, or beg of this line if it's a heading. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
304 Only visible heading lines are considered." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
305 (beginning-of-line) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
306 (or (outline-on-heading-p) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
307 (re-search-backward (concat "^\\(" outline-regexp "\\)") nil t) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
308 (error "before first heading"))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
309 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
310 (defun outline-on-heading-p () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
311 "Return t if point is on a (visible) heading line." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
312 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
313 (beginning-of-line) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
314 (and (bolp) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
315 (looking-at outline-regexp)))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
316 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
317 (defun outline-end-of-heading () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
318 (if (re-search-forward outline-heading-end-regexp nil 'move) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
319 (forward-char -1))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
320 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
321 (defun outline-next-visible-heading (arg) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
322 "Move to the next visible heading line. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
323 With argument, repeats or can move backward if negative. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
324 A heading line is one that starts with a `*' (or that |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
325 `outline-regexp' matches)." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
326 (interactive "p") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
327 (if (< arg 0) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
328 (beginning-of-line) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
329 (end-of-line)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
330 (or (re-search-forward (concat "^\\(" outline-regexp "\\)") nil t arg) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
331 (error "")) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
332 (beginning-of-line)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
333 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
334 (defun outline-previous-visible-heading (arg) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
335 "Move to the previous heading line. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
336 With argument, repeats or can move forward if negative. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
337 A heading line is one that starts with a `*' (or that |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
338 `outline-regexp' matches)." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
339 (interactive "p") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
340 (outline-next-visible-heading (- arg))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
341 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
342 (defun outline-flag-region (from to flag) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
343 "Hides or shows lines from FROM to TO, according to FLAG. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
344 If FLAG is `\\n' (newline character) then text is shown, |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
345 while if FLAG is `\\^M' (control-M) the text is hidden." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
346 (let (buffer-read-only) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
347 (subst-char-in-region from to |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
348 (if (= flag ?\n) ?\^M ?\n) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
349 flag t))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
350 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
351 (defun hide-entry () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
352 "Hide the body directly following this heading." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
353 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
354 (outline-back-to-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
355 (outline-end-of-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
356 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
357 (outline-flag-region (point) (progn (outline-next-preface) (point)) ?\^M))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
358 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
359 (defun show-entry () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
360 "Show the body directly following this heading." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
361 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
362 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
363 (outline-flag-region (point) (progn (outline-next-preface) (point)) ?\n))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
364 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
365 (defun hide-body () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
366 "Hide all of buffer except headings." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
367 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
368 (hide-region-body (point-min) (point-max))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
369 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
370 (defun hide-region-body (start end) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
371 "Hide all body lines in the region, but not headings." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
372 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
373 (save-restriction |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
374 (narrow-to-region start end) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
375 (goto-char (point-min)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
376 (if (outline-on-heading-p) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
377 (outline-end-of-heading)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
378 (while (not (eobp)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
379 (outline-flag-region (point) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
380 (progn (outline-next-preface) (point)) ?\^M) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
381 (if (not (eobp)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
382 (progn |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
383 (forward-char |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
384 (if (looking-at "[\n\^M][\n\^M]") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
385 2 1)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
386 (outline-end-of-heading))))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
387 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
388 (defun show-all () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
389 "Show all of the text in the buffer." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
390 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
391 (outline-flag-region (point-min) (point-max) ?\n)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
392 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
393 (defun hide-subtree () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
394 "Hide everything after this heading at deeper levels." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
395 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
396 (outline-flag-subtree ?\^M)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
397 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
398 (defun hide-leaves () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
399 "Hide all body after this heading at deeper levels." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
400 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
401 (outline-back-to-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
402 (outline-end-of-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
403 (hide-region-body (point) (progn (outline-end-of-subtree) (point)))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
404 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
405 (defun show-subtree () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
406 "Show everything after this heading at deeper levels." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
407 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
408 (outline-flag-subtree ?\n)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
409 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
410 (defun hide-sublevels (levels) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
411 "Hide everything but the top LEVELS levels of headers, in whole buffer." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
412 (interactive "p") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
413 (if (< levels 1) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
414 (error "Must keep at least one level of headers")) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
415 (setq levels (1- levels)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
416 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
417 (goto-char (point-min)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
418 ;; Keep advancing to the next top-level heading. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
419 (while (or (and (bobp) (outline-on-heading-p)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
420 (outline-next-heading)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
421 (let ((end (save-excursion (outline-end-of-subtree) (point)))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
422 ;; Hide everything under that. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
423 (outline-flag-region (point) end ?\^M) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
424 ;; Show the first LEVELS levels under that. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
425 (if (> levels 0) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
426 (show-children levels)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
427 ;; Move to the next, since we already found it. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
428 (goto-char end))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
429 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
430 (defun hide-other () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
431 "Hide everything except for the current body and the parent headings." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
432 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
433 (hide-sublevels 1) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
434 (let ((last (point)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
435 (pos (point))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
436 (while (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
437 (and (re-search-backward "[\n\r]" nil t) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
438 (eq (following-char) ?\r))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
439 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
440 (beginning-of-line) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
441 (if (eq last (point)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
442 (progn |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
443 (outline-next-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
444 (outline-flag-region last (point) ?\n)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
445 (show-children) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
446 (setq last (point))))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
447 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
448 (defun outline-flag-subtree (flag) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
449 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
450 (outline-back-to-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
451 (outline-end-of-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
452 (outline-flag-region (point) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
453 (progn (outline-end-of-subtree) (point)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
454 flag))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
455 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
456 (defun outline-end-of-subtree () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
457 (outline-back-to-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
458 (let ((opoint (point)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
459 (first t) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
460 (level (funcall outline-level))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
461 (while (and (not (eobp)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
462 (or first (> (funcall outline-level) level))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
463 (setq first nil) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
464 (outline-next-heading)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
465 (if (memq (preceding-char) '(?\n ?\^M)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
466 (progn |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
467 ;; Go to end of line before heading |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
468 (forward-char -1) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
469 (if (memq (preceding-char) '(?\n ?\^M)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
470 ;; leave blank line before heading |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
471 (forward-char -1)))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
472 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
473 (defun show-branches () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
474 "Show all subheadings of this heading, but not their bodies." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
475 (interactive) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
476 (show-children 1000)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
477 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
478 (defun show-children (&optional level) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
479 "Show all direct subheadings of this heading. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
480 Prefix arg LEVEL is how many levels below the current level should be shown. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
481 Default is enough to cause the following heading to appear." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
482 (interactive "P") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
483 (setq level |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
484 (if level (prefix-numeric-value level) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
485 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
486 (outline-back-to-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
487 (let ((start-level (funcall outline-level))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
488 (outline-next-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
489 (if (eobp) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
490 1 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
491 (max 1 (- (funcall outline-level) start-level))))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
492 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
493 (save-restriction |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
494 (outline-back-to-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
495 (setq level (+ level (funcall outline-level))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
496 (narrow-to-region (point) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
497 (progn (outline-end-of-subtree) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
498 (if (eobp) (point-max) (1+ (point))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
499 (goto-char (point-min)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
500 (while (and (not (eobp)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
501 (progn |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
502 (outline-next-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
503 (not (eobp)))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
504 (if (<= (funcall outline-level) level) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
505 (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
506 (outline-flag-region (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
507 (forward-char -1) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
508 (if (memq (preceding-char) '(?\n ?\^M)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
509 (forward-char -1)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
510 (point)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
511 (progn (outline-end-of-heading) (point)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
512 ?\n))))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
513 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
514 (defun outline-up-heading (arg) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
515 "Move to the heading line of which the present line is a subheading. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
516 With argument, move up ARG levels." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
517 (interactive "p") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
518 (outline-back-to-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
519 (if (eq (funcall outline-level) 1) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
520 (error "")) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
521 (while (and (> (funcall outline-level) 1) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
522 (> arg 0) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
523 (not (bobp))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
524 (let ((present-level (funcall outline-level))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
525 (while (not (< (funcall outline-level) present-level)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
526 (outline-previous-visible-heading 1)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
527 (setq arg (- arg 1))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
528 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
529 (defun outline-forward-same-level (arg) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
530 "Move forward to the ARG'th subheading at same level as this one. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
531 Stop at the first and last subheadings of a superior heading." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
532 (interactive "p") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
533 (outline-back-to-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
534 (while (> arg 0) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
535 (let ((point-to-move-to (save-excursion |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
38412
diff
changeset
|
536 (outline-get-next-sibling)))) |
34456
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
537 (if point-to-move-to |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
538 (progn |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
539 (goto-char point-to-move-to) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
540 (setq arg (1- arg))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
541 (progn |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
542 (setq arg 0) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
543 (error "")))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
544 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
545 (defun outline-get-next-sibling () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
546 "Move to next heading of the same level, and return point or nil if none." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
547 (let ((level (funcall outline-level))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
548 (outline-next-visible-heading 1) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
549 (while (and (> (funcall outline-level) level) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
550 (not (eobp))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
551 (outline-next-visible-heading 1)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
552 (if (< (funcall outline-level) level) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
553 nil |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
554 (point)))) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
38412
diff
changeset
|
555 |
34456
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
556 (defun outline-backward-same-level (arg) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
557 "Move backward to the ARG'th subheading at same level as this one. |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
558 Stop at the first and last subheadings of a superior heading." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
559 (interactive "p") |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
560 (outline-back-to-heading) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
561 (while (> arg 0) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
562 (let ((point-to-move-to (save-excursion |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
563 (outline-get-last-sibling)))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
564 (if point-to-move-to |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
565 (progn |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
566 (goto-char point-to-move-to) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
567 (setq arg (1- arg))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
568 (progn |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
569 (setq arg 0) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
570 (error "")))))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
571 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
572 (defun outline-get-last-sibling () |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
573 "Move to next heading of the same level, and return point or nil if none." |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
574 (let ((level (funcall outline-level))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
575 (outline-previous-visible-heading 1) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
576 (while (and (> (funcall outline-level) level) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
577 (not (bobp))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
578 (outline-previous-visible-heading 1)) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
579 (if (< (funcall outline-level) level) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
580 nil |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
581 (point)))) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
582 |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
583 (provide 'outline) |
6ab25b51ae25
Moved from textmodes/ooutline.el to obsolete/ooutline.el
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
584 |
52401 | 585 ;;; arch-tag: 14ed00e1-bd40-4db8-86e5-3b82ce326e45 |
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
34456
diff
changeset
|
586 ;;; ooutline.el ends here |