With value nil, inhibit any automatic allout-mode activation."
:set 'allout-auto-activation-helper
+ ;; FIXME: Using strings here is unusual and less efficient than symbols.
:type '(choice (const :tag "On" t)
(const :tag "Ask about layout" "ask")
(const :tag "Mode only" "activate")
:type 'boolean
:group 'allout)
(make-variable-buffer-local 'allout-inhibit-auto-fill)
+;;;_ = allout-inhibit-auto-fill-on-headline
+(defcustom allout-inhibit-auto-fill-on-headline nil
+ "If non-nil, auto-fill will be inhibited while on topic's header line."
+ :type 'boolean
+ :group 'allout)
+(make-variable-buffer-local 'allout-inhibit-auto-fill-on-headline)
;;;_ = allout-use-hanging-indents
(defcustom allout-use-hanging-indents t
"If non-nil, topic body text auto-indent defaults to indent of the header.
(make-variable-buffer-local 'allout-use-hanging-indents)
;;;###autoload
(put 'allout-use-hanging-indents 'safe-local-variable
- (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
+ (if (fboundp 'booleanp) 'booleanp (lambda (x) (member x '(t nil)))))
;;;_ = allout-reindent-bodies
(defcustom allout-reindent-bodies (if allout-use-hanging-indents
'text)
(make-variable-buffer-local 'allout-reindent-bodies)
;;;###autoload
(put 'allout-reindent-bodies 'safe-local-variable
- '(lambda (x) (memq x '(nil t text force))))
+ (lambda (x) (memq x '(nil t text force))))
;;;_ = allout-show-bodies
(defcustom allout-show-bodies nil
(make-variable-buffer-local 'allout-show-bodies)
;;;###autoload
(put 'allout-show-bodies 'safe-local-variable
- (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
+ (if (fboundp 'booleanp) 'booleanp (lambda (x) (member x '(t nil)))))
;;;_ = allout-beginning-of-line-cycles
(defcustom allout-beginning-of-line-cycles t
:group 'allout)
;;;###autoload
(put 'allout-use-mode-specific-leader 'safe-local-variable
- '(lambda (x) (or (memq x '(t nil allout-mode-leaders comment-start))
+ (lambda (x) (or (memq x '(t nil allout-mode-leaders comment-start))
(stringp x))))
;;;_ = allout-mode-leaders
(defvar allout-mode-leaders '()
(make-variable-buffer-local 'allout-old-style-prefixes)
;;;###autoload
(put 'allout-old-style-prefixes 'safe-local-variable
- (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
+ (if (fboundp 'booleanp) 'booleanp (lambda (x) (member x '(t nil)))))
;;;_ = allout-stylish-prefixes -- alternating bullets
(defcustom allout-stylish-prefixes t
"Do fancy stuff with topic prefix bullets according to level, etc.
(make-variable-buffer-local 'allout-stylish-prefixes)
;;;###autoload
(put 'allout-stylish-prefixes 'safe-local-variable
- (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil)))))
+ (if (fboundp 'booleanp) 'booleanp (lambda (x) (member x '(t nil)))))
;;;_ = allout-numbered-bullet
(defcustom allout-numbered-bullet "#"
(put 'allout-numbered-bullet 'safe-local-variable
(if (fboundp 'string-or-null-p)
'string-or-null-p
- '(lambda (x) (or (stringp x) (null x)))))
+ (lambda (x) (or (stringp x) (null x)))))
;;;_ = allout-file-xref-bullet
(defcustom allout-file-xref-bullet "@"
"Bullet signifying file cross-references, for `allout-resolve-xref'.
(put 'allout-file-xref-bullet 'safe-local-variable
(if (fboundp 'string-or-null-p)
'string-or-null-p
- '(lambda (x) (or (stringp x) (null x)))))
+ (lambda (x) (or (stringp x) (null x)))))
;;;_ = allout-presentation-padding
(defcustom allout-presentation-padding 2
"Presentation-format white-space padding factor, for greater indent."
;;;_ = allout-flattened-numbering-abbreviation
(define-obsolete-variable-alias 'allout-abbreviate-flattened-numbering
- 'allout-flattened-numbering-abbreviation "24.0")
+ 'allout-flattened-numbering-abbreviation "24.1")
(defcustom allout-flattened-numbering-abbreviation nil
"If non-nil, `allout-flatten-exposed-to-buffer' abbreviates topic
numbers to minimal amount with some context. Otherwise, entire
(make-variable-buffer-local 'allout-layout)
;;;###autoload
(put 'allout-layout 'safe-local-variable
- '(lambda (x) (or (numberp x) (listp x) (memq x '(: * + -)))))
+ (lambda (x) (or (numberp x) (listp x) (memq x '(: * + -)))))
;;;_ : Topic header format
;;;_ = allout-regexp
(defvar allout-mode-deactivate-hook nil
"*Hook that's run when allout mode ends.")
(define-obsolete-variable-alias 'allout-mode-deactivate-hook
- 'allout-mode-off-hook "future")
+ 'allout-mode-off-hook "24.1")
;;;_ = allout-exposure-category
(defvar allout-exposure-category nil
"Symbol for use as allout invisible-text overlay category.")
If INSTEAD is:
- nil, then the bullet char for the context is used, per distinction or depth
-- a string, then the first character of the string will be used
-- a character, then the user is solicited for bullet, with that char as default
+- a \(numeric) character, then character's string representation is used
+- a string, then the user is asked for bullet with the first char as default
- anything else, the user is solicited with bullet char per context as default
\(INSTEAD overrides other options, including, eg, a distinctive
((progn (setq body (make-string (- depth 2) ?\ ))
;; The actual condition:
instead)
- (let* ((got
- (if (and (stringp instead)(> (length instead) 0))
- (substring instead 0 1)
- (allout-solicit-alternate-bullet depth instead))))
+ (let ((got (cond ((stringp instead)
+ (if (> (length instead) 0)
+ (allout-solicit-alternate-bullet
+ depth (substring instead 0 1))))
+ ((characterp instead) (char-to-string instead))
+ (t (allout-solicit-alternate-bullet depth)))))
;; Gotta check whether we're numbering and got a numbered bullet:
(setq numbering (and allout-numbered-bullet
(not (and number-control (not index)))
Maintains outline hanging topic indentation if
`allout-use-hanging-indents' is set."
- (when (not allout-inhibit-auto-fill)
+ (when (and (not allout-inhibit-auto-fill)
+ (or (not allout-inhibit-auto-fill-on-headline)
+ (not (allout-on-current-heading-p))))
(let ((fill-prefix (if allout-use-hanging-indents
;; Check for topic header indentation:
(save-match-data
If INSTEAD is:
- nil, then the bullet char for the context is used, per distinction or depth
-- a string, then the first character of the string will be used
-- a character, then the user is solicited for bullet, with that char as default
+- a \(numeric) character, then character's string representation is used
+- a string, then the user is asked for bullet with the first char as default
- anything else, the user is solicited with bullet char per context as default
Second arg DEPTH forces the topic prefix to that depth, regardless
;; advance to just after end of this annotation:
(setq next (allout-next-single-char-property-change
(point) 'allout-was-hidden nil end))
- (overlay-put (make-overlay prev next nil 'front-advance)
- 'category 'allout-exposure-category)
+ (let ((o (make-overlay prev next nil 'front-advance)))
+ (overlay-put o 'category 'allout-exposure-category)
+ (overlay-put o 'evaporate t))
(allout-deannotate-hidden prev next)
(setq prev next)
(if next (goto-char next)))))
(if (looking-at " ")
(delete-char 1))))
;; Assert new topic's bullet - minimal effort if unchanged:
- (allout-rebullet-heading prefix-bullet))
+ (allout-rebullet-heading (string-to-char prefix-bullet)))
(exchange-point-and-mark))))
(if rectify-numbering
(progn
(defun allout-mark-marker (&optional force buffer)
"Accommodate the different signature for `mark-marker' across Emacsen.
-XEmacs takes two optional args, while mainline GNU Emacs does not,
+XEmacs takes two optional args, while Emacs does not,
so pass them along when appropriate."
(if (featurep 'xemacs)
(apply 'mark-marker force buffer)