;; Copyright (C) 1992-1994, 2001-2011 Free Software Foundation, Inc.
-;; Author: Ken Manheimer <ken dot manheimer at gmail dot com>
-;; Maintainer: Ken Manheimer <ken dot manheimer at gmail dot com>
+;; Author: Ken Manheimer <ken dot manheimer at gmail...>
+;; Maintainer: Ken Manheimer <ken dot manheimer at gmail...>
;; Created: Dec 1991 -- first release to usenet
;; Version: 2.3
;; Keywords: outlines, wp, languages, PGP, GnuPG
-;; Website: http://myriadicity.net/Sundry/EmacsAllout
+;; Website: http://myriadicity.net/software-and-systems/craft/emacs-allout
;; This file is part of GNU Emacs.
;; the function value keymap of allout-mode-map is used in
;; minor-mode-map-alist - update it:
(fset allout-mode-map allout-mode-map-value))
-;;;_ * intialize the mode map:
+;;;_ * initialize the mode map:
;; ensure that allout-mode-map has some setting even if allout-mode hasn't
;; been invoked:
(allout-compose-and-institute-keymap)
the comment-start string, with an '_' appended, for `allout-primary-bullet'.
String values are used as literals, not regular expressions, so
-do not escape any regulare-expression characters.
+do not escape any regular-expression characters.
Value t means to first check for assoc value in `allout-mode-leaders'
alist, then use comment-start string, if any, then use default (`.').
(defcustom allout-encrypt-unencrypted-on-saves t
"If non-nil, topics pending encryption are encrypted during buffer saves.
-This provents file-system exposure of un-encrypted contents of
+This prevents file-system exposure of un-encrypted contents of
items marked for encryption.
When non-nil, if the topic currently being edited is decrypted,
Each value can be a regexp or a list with a regexp followed by a
substitution string. If it's just a regexp, all its matches are removed
before the text is encrypted. If it's a regexp and a substitution, the
-substition is used against the regexp matches, a la `replace-match'.")
+substitution is used against the regexp matches, a la `replace-match'.")
(make-variable-buffer-local 'allout-encryption-text-removal-regexps)
;;;_ = allout-encryption-ciphertext-rejection-regexps
(defvar allout-encryption-ciphertext-rejection-regexps nil
"Variable for regexps matching plaintext to remove before encryption.
This is used to detect strings in encryption results that would
-register as allout mode structural elements, for exmple, as a
+register as allout mode structural elements, for example, as a
topic prefix.
Entries must be symbols that are bound to the desired regexp values.
;;;###autoload
(define-minor-mode allout-mode
;;;_ . Doc string:
- "Toggle minor mode for controlling exposure and editing of text outlines.
-\\<allout-mode-map-value>
-
-Allout outline mode always runs as a minor mode.
+ "Toggle Allout outline mode.
+With a prefix argument ARG, enable Allout outline mode if ARG is
+positive, and disable it otherwise. If called from Lisp, enable
+the mode if ARG is omitted or nil.
-Allout outline mode provides extensive outline oriented
-formatting and manipulation. It enables structural editing of
-outlines, as well as navigation and exposure. It also is
-specifically aimed at accommodating syntax-sensitive text like
-programming languages. \(For example, see the allout code itself,
-which is organized as an allout outline.)
+\\<allout-mode-map-value>
+Allout outline mode is a minor mode that provides extensive
+outline oriented formatting and manipulation. It enables
+structural editing of outlines, as well as navigation and
+exposure. It also is specifically aimed at accommodating
+syntax-sensitive text like programming languages. \(For example,
+see the allout code itself, which is organized as an allout
+outline.)
In addition to typical outline navigation and exposure, allout includes:
determine whether or not this one is determined to be aberrant.
If true, then the allout-recent-* settings are calibrated on the
-offspring that qaulifies it as aberrant, ie with depth that
+offspring that qualifies it as aberrant, ie with depth that
exceeds the topic by more than one."
;; This is most clearly understood when considering standard-prefix-leader
(defun allout-mark-active-p ()
"True if the mark is currently or always active."
;; `(cond (boundp...))' (or `(if ...)') invokes special byte-compiler
- ;; provisions, at least in fsf emacs to prevent warnings about lack of,
+ ;; provisions, at least in GNU Emacs to prevent warnings about lack of,
;; eg, region-active-p.
(cond ((boundp 'mark-active)
mark-active)
Set by `allout-pre-command-business', to support allout addons in
coordinating with allout activity.")
(make-variable-buffer-local 'allout-command-counter)
+;;;_ = allout-this-command-hid-text
+(defvar allout-this-command-hid-text nil
+ "True if the most recent allout-mode command hid any text.")
+(make-variable-buffer-local 'allout-this-command-hid-text)
;;;_ > allout-post-command-business ()
(defun allout-post-command-business ()
"Outline `post-command-hook' function.
- Implement (and clear) `allout-post-goto-bullet', for hot-spot
outline commands.
+- Move the cursor to the beginning of the entry if it is hidden
+ and collapsing activity just happened.
+
- If the command we're following was an undo, check for change in
the status of encrypted items and adjust auto-save inhibitions
accordingly.
(if (and allout-post-goto-bullet
(allout-current-bullet-pos))
(progn (goto-char (allout-current-bullet-pos))
- (setq allout-post-goto-bullet nil)))
- ))
+ (setq allout-post-goto-bullet nil))
+ (when (and (allout-hidden-p) allout-this-command-hid-text)
+ (allout-beginning-of-current-entry)))))
;;;_ > allout-pre-command-business ()
(defun allout-pre-command-business ()
"Outline `pre-command-hook' function for outline buffers.
(if (not (allout-mode-p))
nil
- ;; Increment allout-command-counter
(setq allout-command-counter (1+ allout-command-counter))
+ (setq allout-this-command-hid-text nil)
;; Do hot-spot navigation.
(if (and (eq this-command 'self-insert-command)
(eq (point)(allout-current-bullet-pos)))
Fifth arg, NUMBER-CONTROL, matters only if `allout-numbered-bullet'
is non-nil *and* no specific INSTEAD was specified. Then
NUMBER-CONTROL non-nil forces prefix to either numbered or
-denumbered format, depending on the value of the sixth arg, INDEX.
+unnumbered format, depending on the value of the sixth arg, INDEX.
\(Note that NUMBER-CONTROL does *not* apply to level 1 topics. Sorry...)
sequential renumbering to not require this function counting back the
index for each successive sibling)."
;;;_ . Code:
- ;; The options are ordered in likely frequence of use, most common
+ ;; The options are ordered in likely frequency of use, most common
;; highest, least lowest. Ie, more likely to be doing prefix
;; adjustments than soliciting, and yet more than numbering.
;; Current prefix is least dominant, but most likely to be commonly
;;(if doing-beginning (goto-char doing-beginning))
(if (not (bobp))
;; We insert a newline char rather than using open-line to
- ;; avoid rear-stickiness inheritence of read-only property.
+ ;; avoid rear-stickiness inheritance of read-only property.
(progn (if (and (not (> depth ref-depth))
(not before))
(open-line 1)
(if (and (not (eobp))
(or (not (bolp))
(and (not (bobp))
- ;; bolp doesnt detect concealed
+ ;; bolp doesn't detect concealed
;; trailing newlines, compensate:
(save-excursion
(forward-char -1)
(condition-case nil
;; as of 2008-02-27, xemacs lacks modification-hooks
(overlay-put o (pop props) (pop props))
- (error nil)))))))
+ (error nil))))))
+ (setq allout-this-command-hid-text t))
(run-hook-with-args 'allout-exposure-change-hook from to flag))
;;;_ > allout-flag-current-subtree (flag)
(defun allout-flag-current-subtree (flag)
"invalid format" format))))
(list depth prefix strings))
result))
- ;; Reasses format, if any:
+ ;; Reassess format, if any:
(if (and format (listp format))
(cond ((= new-depth depth)
(setq format (cons (1+ (car format))