Mercurial > emacs
comparison lisp/allout.el @ 48858:f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
diffs understandable.
Change 3: Doc changes to adjust to the change to prefix "allout-".
Don't provide 'outline. Use " Allout" as mode line string, not "
Outl". Put group 'allout in group 'editing. Update Copyright notice.
Autoload `allout-init'.
author | Markus Rost <rost@math.uni-bielefeld.de> |
---|---|
date | Mon, 16 Dec 2002 00:42:23 +0000 |
parents | 8641226163f1 |
children | 1c806f4edc19 |
comparison
equal
deleted
inserted
replaced
48857:8641226163f1 | 48858:f4d079377a9a |
---|---|
1 ;;; allout.el --- extensive outline mode for use alone and with other modes | 1 ;;; allout.el --- extensive outline mode for use alone and with other modes |
2 | 2 |
3 ;; Copyright (C) 1992, 1993, 1994, 2001 Free Software Foundation, Inc. | 3 ;; Copyright (C) 1992, 1993, 1994, 2001, 2002 Free Software Foundation, Inc. |
4 | 4 |
5 ;; Author: Ken Manheimer <klm@python.org> | 5 ;; Author: Ken Manheimer <klm@python.org> |
6 ;; Maintainer: Ken Manheimer <klm@python.org> | 6 ;; Maintainer: Ken Manheimer <klm@python.org> |
7 ;; Created: Dec 1991 - first release to usenet | 7 ;; Created: Dec 1991 - first release to usenet |
8 ;; Version: $Id: allout.el,v 1.35 2002/12/16 00:20:42 rost Exp $|| | 8 ;; Version: $Id: allout.el,v 1.36 2002/12/16 00:26:22 rost Exp $|| |
9 ;; Keywords: outlines mode wp languages | 9 ;; Keywords: outlines mode wp languages |
10 | 10 |
11 ;; This file is part of GNU Emacs. | 11 ;; This file is part of GNU Emacs. |
12 | 12 |
13 ;; GNU Emacs is free software; you can redistribute it and/or modify | 13 ;; GNU Emacs is free software; you can redistribute it and/or modify |
44 ;; exposure control. (See the `allout-mode' docstring.) | 44 ;; exposure control. (See the `allout-mode' docstring.) |
45 ;; | 45 ;; |
46 ;; and many other features. | 46 ;; and many other features. |
47 ;; | 47 ;; |
48 ;; The outline menubar additions provide quick reference to many of | 48 ;; The outline menubar additions provide quick reference to many of |
49 ;; the features, and see the docstring of the variable `allout-init' | 49 ;; the features, and see the docstring of the function `allout-init' |
50 ;; for instructions on priming your emacs session for automatic | 50 ;; for instructions on priming your emacs session for automatic |
51 ;; activation of `allout-mode'. | 51 ;; activation of `allout-mode'. |
52 ;; | 52 ;; |
53 ;; See the docstring of the variables `allout-layout' and | 53 ;; See the docstring of the variables `allout-layout' and |
54 ;; `allout-auto-activation' for details on automatic activation of | 54 ;; `allout-auto-activation' for details on automatic activation of |
61 ;; Ken Manheimer klm@python.org | 61 ;; Ken Manheimer klm@python.org |
62 | 62 |
63 ;;; Code: | 63 ;;; Code: |
64 | 64 |
65 ;;;_* Provide | 65 ;;;_* Provide |
66 (provide 'outline) | |
67 (provide 'allout) | 66 (provide 'allout) |
68 | 67 |
69 ;;;_* USER CUSTOMIZATION VARIABLES: | 68 ;;;_* USER CUSTOMIZATION VARIABLES: |
70 (defgroup allout nil | 69 (defgroup allout nil |
71 "Extensive outline mode for use alone and with other modes." | 70 "Extensive outline mode for use alone and with other modes." |
72 :prefix "allout-" | 71 :prefix "allout-" |
73 :group 'outlines) | 72 :group 'editing) |
74 | 73 |
75 ;;;_ + Layout, Mode, and Topic Header Configuration | 74 ;;;_ + Layout, Mode, and Topic Header Configuration |
76 | 75 |
77 ;;;_ = allout-auto-activation | 76 ;;;_ = allout-auto-activation |
78 (defcustom allout-auto-activation nil | 77 (defcustom allout-auto-activation nil |
82 outline mode is automatically activated when the buffer-specific | 81 outline mode is automatically activated when the buffer-specific |
83 variable `allout-layout' is non-nil, and whether or not the layout | 82 variable `allout-layout' is non-nil, and whether or not the layout |
84 dictated by `allout-layout' should be imposed on mode activation. | 83 dictated by `allout-layout' should be imposed on mode activation. |
85 | 84 |
86 With value `t', auto-mode-activation and auto-layout are enabled. | 85 With value `t', auto-mode-activation and auto-layout are enabled. |
87 \(This also depends on `allout-find-file-hooks' being installed in | 86 \(This also depends on `allout-find-file-hook' being installed in |
88 `find-file-hooks', which is also done by `allout-init'.) | 87 `find-file-hooks', which is also done by `allout-init'.) |
89 | 88 |
90 With value `ask', auto-mode-activation is enabled, and endorsement for | 89 With value `ask', auto-mode-activation is enabled, and endorsement for |
91 performing auto-layout is asked of the user each time. | 90 performing auto-layout is asked of the user each time. |
92 | 91 |
108 "*Layout specification and provisional mode trigger for allout outlines. | 107 "*Layout specification and provisional mode trigger for allout outlines. |
109 | 108 |
110 Buffer-specific. | 109 Buffer-specific. |
111 | 110 |
112 A list value specifies a default layout for the current buffer, to be | 111 A list value specifies a default layout for the current buffer, to be |
113 applied upon activation of allout `allout-mode'. Any non-nil value will | 112 applied upon activation of `allout-mode'. Any non-nil value will |
114 automatically trigger allout `allout-mode', provided `allout-init' | 113 automatically trigger `allout-mode', provided `allout-init' |
115 has been called to enable it. | 114 has been called to enable it. |
116 | 115 |
117 See the docstring for `allout-init' for details on setting up for | 116 See the docstring for `allout-init' for details on setting up for |
118 auto-mode-activation, and for `allout-expose-topic' for the format of | 117 auto-mode-activation, and for `allout-expose-topic' for the format of |
119 the layout specification. | 118 the layout specification. |
259 character, like an \"_\" underscore, to distinguish the lead string | 258 character, like an \"_\" underscore, to distinguish the lead string |
260 from regular comments that start at bol.") | 259 from regular comments that start at bol.") |
261 | 260 |
262 ;;;_ = allout-old-style-prefixes | 261 ;;;_ = allout-old-style-prefixes |
263 (defcustom allout-old-style-prefixes nil | 262 (defcustom allout-old-style-prefixes nil |
264 "*When non-nil, use only old-and-crusty allout-mode `*' topic prefixes. | 263 "*When non-nil, use only old-and-crusty `outline-mode' `*' topic prefixes. |
265 | 264 |
266 Non-nil restricts the topic creation and modification | 265 Non-nil restricts the topic creation and modification |
267 functions to asterix-padded prefixes, so they look exactly | 266 functions to asterix-padded prefixes, so they look exactly |
268 like the original emacs-outline style prefixes. | 267 like the original emacs-outline style prefixes. |
269 | 268 |
507 | 506 |
508 ;;;_ #1 Internal Outline Formatting and Configuration | 507 ;;;_ #1 Internal Outline Formatting and Configuration |
509 ;;;_ : Version | 508 ;;;_ : Version |
510 ;;;_ = allout-version | 509 ;;;_ = allout-version |
511 (defvar allout-version | 510 (defvar allout-version |
512 (let ((rcs-rev "$Revision: 1.35 $")) | 511 (let ((rcs-rev "$Revision: 1.36 $")) |
513 (condition-case err | 512 (condition-case err |
514 (save-match-data | 513 (save-match-data |
515 (string-match "Revision: \\([0-9]+\\.[0-9]+\\)" rcs-rev) | 514 (string-match "Revision: \\([0-9]+\\.[0-9]+\\)" rcs-rev) |
516 (substring rcs-rev (match-beginning 1) (match-end 1))) | 515 (substring rcs-rev (match-beginning 1) (match-end 1))) |
517 ('error rcs-rev))) | 516 ('error rcs-rev))) |
545 (defvar allout-bullets-string-len 0 | 544 (defvar allout-bullets-string-len 0 |
546 "Length of current buffers' `allout-plain-bullets-string'.") | 545 "Length of current buffers' `allout-plain-bullets-string'.") |
547 (make-variable-buffer-local 'allout-bullets-string-len) | 546 (make-variable-buffer-local 'allout-bullets-string-len) |
548 ;;;_ = allout-line-boundary-regexp | 547 ;;;_ = allout-line-boundary-regexp |
549 (defvar allout-line-boundary-regexp () | 548 (defvar allout-line-boundary-regexp () |
550 "Allout-regexp with allout-style beginning-of-line anchor. | 549 "`allout-regexp' with outline style beginning-of-line anchor. |
551 | 550 |
552 \(Ie, C-j, *or* C-m, for prefixes of hidden topics). This is properly | 551 \(Ie, C-j, *or* C-m, for prefixes of hidden topics). This is properly |
553 set when `allout-regexp' is produced by `set-allout-regexp', so | 552 set when `allout-regexp' is produced by `set-allout-regexp', so |
554 that (match-beginning 2) and (match-end 2) delimit the prefix.") | 553 that (match-beginning 2) and (match-end 2) delimit the prefix.") |
555 (make-variable-buffer-local 'allout-line-boundary-regexp) | 554 (make-variable-buffer-local 'allout-line-boundary-regexp) |
797 ["Set Header Lead" allout-reset-header-lead t] | 796 ["Set Header Lead" allout-reset-header-lead t] |
798 ["Set New Exposure" allout-expose-topic t]))) | 797 ["Set New Exposure" allout-expose-topic t]))) |
799 ;;;_ : Mode-Specific Variable Maintenance Utilities | 798 ;;;_ : Mode-Specific Variable Maintenance Utilities |
800 ;;;_ = allout-mode-prior-settings | 799 ;;;_ = allout-mode-prior-settings |
801 (defvar allout-mode-prior-settings nil | 800 (defvar allout-mode-prior-settings nil |
802 "Internal outline mode use; settings to be resumed on mode deactivation.") | 801 "Internal `allout-mode' use; settings to be resumed on mode deactivation.") |
803 (make-variable-buffer-local 'allout-mode-prior-settings) | 802 (make-variable-buffer-local 'allout-mode-prior-settings) |
804 ;;;_ > allout-resumptions (name &optional value) | 803 ;;;_ > allout-resumptions (name &optional value) |
805 (defun allout-resumptions (name &optional value) | 804 (defun allout-resumptions (name &optional value) |
806 | 805 |
807 "Registers or resumes settings over `allout-mode' activation/deactivation. | 806 "Registers or resumes settings over `allout-mode' activation/deactivation. |
909 "Horrible hack used to prevent invalid multiple triggering of outline | 908 "Horrible hack used to prevent invalid multiple triggering of outline |
910 mode from prop-line file-var activation. Used by `allout-mode' function | 909 mode from prop-line file-var activation. Used by `allout-mode' function |
911 to track repeats.") | 910 to track repeats.") |
912 ;;;_ > allout-write-file-hook () | 911 ;;;_ > allout-write-file-hook () |
913 (defun allout-write-file-hook () | 912 (defun allout-write-file-hook () |
914 "In outline mode, run as a `local-write-file-hooks' activity. | 913 "In `allout-mode', run as a `local-write-file-hooks' activity. |
915 | 914 |
916 Currently just sets `allout-during-write-cue', so allout-change-protection | 915 Currently just sets `allout-during-write-cue', so outline change-protection |
917 knows to keep inactive during file write." | 916 knows to keep inactive during file write." |
918 (setq allout-during-write-cue t) | 917 (setq allout-during-write-cue t) |
919 nil) | 918 nil) |
920 | 919 |
921 ;;;_ #2 Mode activation | 920 ;;;_ #2 Mode activation |
926 (defmacro allout-mode-p () | 925 (defmacro allout-mode-p () |
927 "Return t if `allout-mode' is active in current buffer." | 926 "Return t if `allout-mode' is active in current buffer." |
928 'allout-mode) | 927 'allout-mode) |
929 ;;;_ = allout-explicitly-deactivated | 928 ;;;_ = allout-explicitly-deactivated |
930 (defvar allout-explicitly-deactivated nil | 929 (defvar allout-explicitly-deactivated nil |
931 "Allout-mode was last deliberately deactivated. | 930 "Non-nil if `allout-mode' was last deliberately deactivated. |
932 So `allout-post-command-business' should not reactivate it...") | 931 So `allout-post-command-business' should not reactivate it...") |
933 (make-variable-buffer-local 'allout-explicitly-deactivated) | 932 (make-variable-buffer-local 'allout-explicitly-deactivated) |
934 ;;;_ > allout-init (&optional mode) | 933 ;;;_ > allout-init (&optional mode) |
934 ;;;###autoload | |
935 (defun allout-init (&optional mode) | 935 (defun allout-init (&optional mode) |
936 "Prime `allout-mode' to enable/disable auto-activation, wrt `allout-layout'. | 936 "Prime `allout-mode' to enable/disable auto-activation, wrt `allout-layout'. |
937 | 937 |
938 MODE is one of the following symbols: | 938 MODE is one of the following symbols: |
939 | 939 |
948 Use this function to setup your emacs session for automatic activation | 948 Use this function to setup your emacs session for automatic activation |
949 of allout outline mode, contingent to the buffer-specific setting of | 949 of allout outline mode, contingent to the buffer-specific setting of |
950 the `allout-layout' variable. (See `allout-layout' and | 950 the `allout-layout' variable. (See `allout-layout' and |
951 `allout-expose-topic' docstrings for more details on auto layout). | 951 `allout-expose-topic' docstrings for more details on auto layout). |
952 | 952 |
953 `allout-init' works by setting up (or removing) the allout-mode | 953 `allout-init' works by setting up (or removing) |
954 find-file-hook, and giving `allout-auto-activation' a suitable | 954 `allout-find-file-hook' in `find-file-hooks', and giving |
955 setting. | 955 `allout-auto-activation' a suitable setting. |
956 | 956 |
957 To prime your emacs session for full auto-outline operation, include | 957 To prime your emacs session for full auto-outline operation, include |
958 the following two lines in your emacs init file: | 958 the following two lines in your emacs init file: |
959 | 959 |
960 \(require 'allout) | 960 \(require 'allout) |
1006 "Outline mode auto-activation and -layout enabled.") | 1006 "Outline mode auto-activation and -layout enabled.") |
1007 'full))))))) | 1007 'full))))))) |
1008 | 1008 |
1009 ;;;_ > allout-setup-menubar () | 1009 ;;;_ > allout-setup-menubar () |
1010 (defun allout-setup-menubar () | 1010 (defun allout-setup-menubar () |
1011 "Populate the current buffer's menubar with allout allout-mode stuff." | 1011 "Populate the current buffer's menubar with `allout-mode' stuff." |
1012 (let ((menus (list allout-mode-exposure-menu | 1012 (let ((menus (list allout-mode-exposure-menu |
1013 allout-mode-editing-menu | 1013 allout-mode-editing-menu |
1014 allout-mode-navigation-menu | 1014 allout-mode-navigation-menu |
1015 allout-mode-misc-menu)) | 1015 allout-mode-misc-menu)) |
1016 cur) | 1016 cur) |
1025 "Toggle minor mode for controlling exposure and editing of text outlines. | 1025 "Toggle minor mode for controlling exposure and editing of text outlines. |
1026 | 1026 |
1027 Optional arg forces mode to re-initialize iff arg is positive num or | 1027 Optional arg forces mode to re-initialize iff arg is positive num or |
1028 symbol. Allout outline mode always runs as a minor mode. | 1028 symbol. Allout outline mode always runs as a minor mode. |
1029 | 1029 |
1030 Allout outline mode provides extensive allout-oriented formatting and | 1030 Allout outline mode provides extensive outline oriented formatting and |
1031 manipulation. It enables structural editing of outlines, as well as | 1031 manipulation. It enables structural editing of outlines, as well as |
1032 navigation and exposure. It also is specifically aimed at | 1032 navigation and exposure. It also is specifically aimed at |
1033 accommodating syntax-sensitive text like programming languages. \(For | 1033 accommodating syntax-sensitive text like programming languages. \(For |
1034 an example, see the allout code itself, which is organized as an allout | 1034 an example, see the allout code itself, which is organized as an allout |
1035 outline.) | 1035 outline.) |
1174 The string at the beginning of a topic prefix, normally a `.'. | 1174 The string at the beginning of a topic prefix, normally a `.'. |
1175 It can be customized by changing the setting of | 1175 It can be customized by changing the setting of |
1176 `allout-header-prefix' and then reinitializing `allout-mode'. | 1176 `allout-header-prefix' and then reinitializing `allout-mode'. |
1177 | 1177 |
1178 By setting the prefix-lead to the comment-string of a | 1178 By setting the prefix-lead to the comment-string of a |
1179 programming language, you can embed allout-structuring in | 1179 programming language, you can embed outline structuring in |
1180 program code without interfering with the language processing | 1180 program code without interfering with the language processing |
1181 of that code. See `allout-use-mode-specific-leader' | 1181 of that code. See `allout-use-mode-specific-leader' |
1182 docstring for more detail. | 1182 docstring for more detail. |
1183 PREFIX-PADDING: | 1183 PREFIX-PADDING: |
1184 Spaces or asterisks which separate the prefix-lead and the | 1184 Spaces or asterisks which separate the prefix-lead and the |
1235 ;; Emacs v 19.18, 19.19 file-var code invokes prop-line-designated | 1235 ;; Emacs v 19.18, 19.19 file-var code invokes prop-line-designated |
1236 ;; modes twice when file is visited. We have to avoid toggling mode | 1236 ;; modes twice when file is visited. We have to avoid toggling mode |
1237 ;; off on second invocation, so we detect it as best we can, and | 1237 ;; off on second invocation, so we detect it as best we can, and |
1238 ;; skip everything. | 1238 ;; skip everything. |
1239 ((and same-complex-command ; Still in same complex command | 1239 ((and same-complex-command ; Still in same complex command |
1240 ; as last time `allout-mode' invoked. | 1240 ; as last time `allout-mode' invoked. |
1241 active ; Already activated. | 1241 active ; Already activated. |
1242 (not explicit-activation) ; Prop-line file-vars don't have args. | 1242 (not explicit-activation) ; Prop-line file-vars don't have args. |
1243 (string-match "^19.1[89]" ; Bug only known to be in v19.18 and | 1243 (string-match "^19.1[89]" ; Bug only known to be in v19.18 and |
1244 emacs-version)); 19.19. | 1244 emacs-version)); 19.19. |
1245 t) | 1245 t) |
1362 (list (concat paragraph-separate "\\|^\\(" | 1362 (list (concat paragraph-separate "\\|^\\(" |
1363 allout-regexp "\\)"))) | 1363 allout-regexp "\\)"))) |
1364 | 1364 |
1365 (or (assq 'allout-mode minor-mode-alist) | 1365 (or (assq 'allout-mode minor-mode-alist) |
1366 (setq minor-mode-alist | 1366 (setq minor-mode-alist |
1367 (cons '(allout-mode " Outl") minor-mode-alist))) | 1367 (cons '(allout-mode " Allout") minor-mode-alist))) |
1368 | 1368 |
1369 (allout-setup-menubar) | 1369 (allout-setup-menubar) |
1370 | 1370 |
1371 (if allout-layout | 1371 (if allout-layout |
1372 (setq do-layout t)) | 1372 (setq do-layout t)) |
1648 | 1648 |
1649 Optional argument LEVELS specifies the depth \(relative to start | 1649 Optional argument LEVELS specifies the depth \(relative to start |
1650 depth) for the chart. Subsequent optional args are not for public | 1650 depth) for the chart. Subsequent optional args are not for public |
1651 use. | 1651 use. |
1652 | 1652 |
1653 Charts are used to capture outline structure, so that allout-altering | 1653 Charts are used to capture outline structure, so that outline altering |
1654 routines need assess the structure only once, and then use the chart | 1654 routines need assess the structure only once, and then use the chart |
1655 for their elaborate manipulations. | 1655 for their elaborate manipulations. |
1656 | 1656 |
1657 Topics are entered in the chart so the last one is at the car. | 1657 Topics are entered in the chart so the last one is at the car. |
1658 The entry for each topic consists of an integer indicating the point | 1658 The entry for each topic consists of an integer indicating the point |
2017 (goto-char start-point) | 2017 (goto-char start-point) |
2018 (if depth (allout-depth) start-depth) | 2018 (if depth (allout-depth) start-depth) |
2019 nil)))) | 2019 nil)))) |
2020 ;;;_ > allout-previous-sibling (&optional depth backward) | 2020 ;;;_ > allout-previous-sibling (&optional depth backward) |
2021 (defun allout-previous-sibling (&optional depth backward) | 2021 (defun allout-previous-sibling (&optional depth backward) |
2022 "Like `allout-forward-current-level',but backwards & respect invisible topics. | 2022 "Like `allout-forward-current-level', but backwards & respect invisible topics. |
2023 | 2023 |
2024 Optional DEPTH specifies depth to traverse, default current depth. | 2024 Optional DEPTH specifies depth to traverse, default current depth. |
2025 | 2025 |
2026 Optional BACKWARD reverses direction. | 2026 Optional BACKWARD reverses direction. |
2027 | 2027 |
2331 (defun allout-pre-command-business () | 2331 (defun allout-pre-command-business () |
2332 "Outline `pre-command-hook' function for outline buffers. | 2332 "Outline `pre-command-hook' function for outline buffers. |
2333 Implements special behavior when cursor is on bullet char. | 2333 Implements special behavior when cursor is on bullet char. |
2334 | 2334 |
2335 Self-insert characters are reinterpreted control-character references | 2335 Self-insert characters are reinterpreted control-character references |
2336 into the `allout-mode-map'. The `allout-mode' post-command hook will | 2336 into the `allout-mode-map'. The `allout-mode' `post-command-hook' will |
2337 position a cursor that has moved as a result of such reinterpretation, | 2337 position a cursor that has moved as a result of such reinterpretation, |
2338 on the destination topic's bullet, when the cursor wound up in the | 2338 on the destination topic's bullet, when the cursor wound up in the |
2339 | 2339 |
2340 The upshot is that you can get easy, single (ie, unmodified) key | 2340 The upshot is that you can get easy, single (ie, unmodified) key |
2341 outline maneuvering operations by positioning the cursor on the bullet | 2341 outline maneuvering operations by positioning the cursor on the bullet |
2492 (signal 'quit nil)))) | 2492 (signal 'quit nil)))) |
2493 | 2493 |
2494 ;;; Prevent unnecessary font-lock while isearching! | 2494 ;;; Prevent unnecessary font-lock while isearching! |
2495 (defvar isearch-was-font-locking nil) | 2495 (defvar isearch-was-font-locking nil) |
2496 (defun isearch-inhibit-font-lock () | 2496 (defun isearch-inhibit-font-lock () |
2497 "Inhibit font-lock while isearching - for use on `isearch-mode-hook'." | 2497 "Inhibit `font-lock-mode' while isearching - for use on `isearch-mode-hook'." |
2498 (if (and (allout-mode-p) (boundp 'font-lock-mode) font-lock-mode) | 2498 (if (and (allout-mode-p) (boundp 'font-lock-mode) font-lock-mode) |
2499 (setq isearch-was-font-locking t | 2499 (setq isearch-was-font-locking t |
2500 font-lock-mode nil))) | 2500 font-lock-mode nil))) |
2501 (add-hook 'isearch-mode-hook 'isearch-inhibit-font-lock) | 2501 (add-hook 'isearch-mode-hook 'isearch-inhibit-font-lock) |
2502 (defun isearch-reenable-font-lock () | 2502 (defun isearch-reenable-font-lock () |
2905 ;;;_ = allout-former-auto-filler | 2905 ;;;_ = allout-former-auto-filler |
2906 (defvar allout-former-auto-filler nil | 2906 (defvar allout-former-auto-filler nil |
2907 "Name of modal fill function being wrapped by `allout-auto-fill'.") | 2907 "Name of modal fill function being wrapped by `allout-auto-fill'.") |
2908 ;;;_ > allout-auto-fill () | 2908 ;;;_ > allout-auto-fill () |
2909 (defun allout-auto-fill () | 2909 (defun allout-auto-fill () |
2910 "Allout-mode autofill function. | 2910 "`allout-mode' autofill function. |
2911 | 2911 |
2912 Maintains outline hanging topic indentation if | 2912 Maintains outline hanging topic indentation if |
2913 `allout-use-hanging-indents' is set." | 2913 `allout-use-hanging-indents' is set." |
2914 (let ((fill-prefix (if allout-use-hanging-indents | 2914 (let ((fill-prefix (if allout-use-hanging-indents |
2915 ;; Check for topic header indentation: | 2915 ;; Check for topic header indentation: |
3320 (save-excursion | 3320 (save-excursion |
3321 (allout-renumber-to-depth depth)))) | 3321 (allout-renumber-to-depth depth)))) |
3322 ;;;_ > allout-yank-processing () | 3322 ;;;_ > allout-yank-processing () |
3323 (defun allout-yank-processing (&optional arg) | 3323 (defun allout-yank-processing (&optional arg) |
3324 | 3324 |
3325 "Incidental allout-specific business to be done just after text yanks. | 3325 "Incidental outline specific business to be done just after text yanks. |
3326 | 3326 |
3327 Does depth adjustment of yanked topics, when: | 3327 Does depth adjustment of yanked topics, when: |
3328 | 3328 |
3329 1 the stuff being yanked starts with a valid outline header prefix, and | 3329 1 the stuff being yanked starts with a valid outline header prefix, and |
3330 2 it is being yanked at the end of a line which consists of only a valid | 3330 2 it is being yanked at the end of a line which consists of only a valid |
3336 the amount it takes to make the first topic have the depth of the | 3336 the amount it takes to make the first topic have the depth of the |
3337 header into which it's being yanked. | 3337 header into which it's being yanked. |
3338 | 3338 |
3339 The point is left in front of yanked, adjusted topics, rather than | 3339 The point is left in front of yanked, adjusted topics, rather than |
3340 at the end (and vice-versa with the mark). Non-adjusted yanks, | 3340 at the end (and vice-versa with the mark). Non-adjusted yanks, |
3341 however, are left exactly like normal, non-allout-specific yanks." | 3341 however, are left exactly like normal, not outline specific yanks." |
3342 | 3342 |
3343 (interactive "*P") | 3343 (interactive "*P") |
3344 ; Get to beginning, leaving | 3344 ; Get to beginning, leaving |
3345 ; region around subject: | 3345 ; region around subject: |
3346 (if (< (my-mark-marker t) (point)) | 3346 (if (< (my-mark-marker t) (point)) |
3446 (message "")))) | 3446 (message "")))) |
3447 (if (not resituate) | 3447 (if (not resituate) |
3448 (exchange-point-and-mark)))) | 3448 (exchange-point-and-mark)))) |
3449 ;;;_ > allout-yank (&optional arg) | 3449 ;;;_ > allout-yank (&optional arg) |
3450 (defun allout-yank (&optional arg) | 3450 (defun allout-yank (&optional arg) |
3451 "Allout-mode yank, with depth and numbering adjustment of yanked topics. | 3451 "`allout-mode' yank, with depth and numbering adjustment of yanked topics. |
3452 | 3452 |
3453 Non-topic yanks work no differently than normal yanks. | 3453 Non-topic yanks work no differently than normal yanks. |
3454 | 3454 |
3455 If a topic is being yanked into a bare topic prefix, the depth of the | 3455 If a topic is being yanked into a bare topic prefix, the depth of the |
3456 yanked topic is adjusted to the depth of the topic prefix. | 3456 yanked topic is adjusted to the depth of the topic prefix. |
3470 exactly like normal yanks. | 3470 exactly like normal yanks. |
3471 | 3471 |
3472 Numbering of yanked topics, and the successive siblings at the depth | 3472 Numbering of yanked topics, and the successive siblings at the depth |
3473 into which they're being yanked, is adjusted. | 3473 into which they're being yanked, is adjusted. |
3474 | 3474 |
3475 `Allout-yank-pop' works with `allout-yank' just like normal yank-pop | 3475 `allout-yank-pop' works with `allout-yank' just like normal yank-pop |
3476 works with normal yank in non-outline buffers." | 3476 works with normal yank in non-outline buffers." |
3477 | 3477 |
3478 (interactive "*P") | 3478 (interactive "*P") |
3479 (setq this-command 'yank) | 3479 (setq this-command 'yank) |
3480 (yank arg) | 3480 (yank arg) |
3559 (defun allout-show-entry () | 3559 (defun allout-show-entry () |
3560 "Like `allout-show-current-entry', reveals entries nested in hidden topics. | 3560 "Like `allout-show-current-entry', reveals entries nested in hidden topics. |
3561 | 3561 |
3562 This is a way to give restricted peek at a concealed locality without the | 3562 This is a way to give restricted peek at a concealed locality without the |
3563 expense of exposing its context, but can leave the outline with aberrant | 3563 expense of exposing its context, but can leave the outline with aberrant |
3564 exposure. `allout-hide-current-entry-completely' or `allout-show-offshoot' | 3564 exposure. `allout-hide-current-entry-completely' or `allout-show-to-offshoot' |
3565 should be used after the peek to rectify the exposure." | 3565 should be used after the peek to rectify the exposure." |
3566 | 3566 |
3567 (interactive) | 3567 (interactive) |
3568 (save-excursion | 3568 (save-excursion |
3569 (let ((at (point)) | 3569 (let ((at (point)) |