[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: allout-mode fixes - mode-specific settings, auto-fill, deactivation

From: Ken Manheimer
Subject: Re: allout-mode fixes - mode-specific settings, auto-fill, deactivation hook
Date: Sat, 8 Jul 2006 12:31:05 -0400

just after posting my patch, i started catching up on emacs-devel
traffic and noticed the eval-after-load controversy.  as i mentioned
in my posting, i use eval-after-load, conditioned by a customization
var.  it makes sense to me to have my use of eval-after-load reviewed,
and get suggestions about how best to accomplish what i want.

the goal is that developers are informed as quickly possible when any
changes they make break the unit tests.  i am using eval-after-load of
the file, itself, and it is evaluated only if the user has customized
`allout-run-unit-tests-after-load' to true, which should not generally
be the case.  is this an ok use?  (i could put the invocation of the
tests at the bottom of the file, but i prefer the provide to be at the
bottom.)  i can make a new patch if this use is unruly.


On 7/8/06, Ken Manheimer <address@hidden> wrote:
i have new patch for allout.el.  it fixes a few things:

 - hooks and mode-specific variable settings are properly set to be local,
   and properly cleaned up on mode deactivation
 - auto-fill is not forced active if it wasn't already active when the mode
   was initiated.
 - hotspot key handling is modularized, for consistent use everywhere.
 - a new hook variable, `allout-mode-deactivation-hook', provides a
   complement to `allout-mode-hook'.

the settings cleanup is implemented with an improved settings
suspension/resumption mechanism, accompanied by some much needed unit
tests.  the unit tests are run after the file is loaded if a new
customization option, `allout-run-unit-tests-after-load', is true.
the idea is that allout code developers set this to true, and are
warned quickly about regressions.

the change-log is included below and also attached.  the patch and a
new version of the NEWS file are also attached.  I'm hoping someone
with commit privileges will have a moment to install these changes.

2006-07-08  Ken Manheimer  <address@hidden>

        * allout.el: Require 'cl.
        (allout-mode-deactivate-hook): New hook, is run when allout mode
        (allout-developer): New allout customization subgroup.
        (allout-run-unit-tests-after-load): New allout-developer
        customization variable, when true allout unit tests are run after
        file load.
        (allout-inhibit-auto-fill): Disable auto-fill activity even during
        (allout-resumptions): Removed, to be replaced by...
        (allout-add-resumptions): Register variable settings to be
        reinstated by `allout-do-resumptions'.  The settings are made
        buffer-local, but the locality/globality of the suspended setting
        is restored on resumption.
        (allout-do-resumptions): Reinstate all settings suspended using
        (allout-test-resumptions): Unit tests (and intermediate variables)
        for resumptions.
        (allout-tests-globally-unbound, allout-tests-globally-true)
        (allout-tests-locally-true): Intermediate variables for
        resumptions unit tests.
        (allout-overlay-preparations): Replaces `allout-set-overlay-category'.
        (allout-exposure-category): Replaces 'allout-overlay-category variable.
        (allout-mode): Use `allout-add-resumptions' and `allout-do-resumptions'
        instead of retired `allout-resumptions'.  For hook functions, use
        `local' parameter so hook settings are created and removed as
        buffer-local settings.  Revise (resumptions) setting
        auto-fill-function so it is set only if already active.  (The
        related fill-function settings are all made in either case, so
        that activating auto-fill-mode activity will have the custom
        allout-mode behaviors (hanging indent on topics, if configured for
        it).  Also, remove all allout-exposure-category overlays on mode
        (allout-hotspot-key-handler): New function extracted from
        `allout-pre-command-business', so the functionality can be used
        for other purposes, eg as a binding in an overlay.
        (allout-pre-command-business): Use new `allout-hotspot-key-handler'.
        (allout-auto-fill): Respect new `allout-inhibit-auto-fill'
        customization variable.
        (allout-run-unit-tests): Run the (currently quite small)
        repertoire of unit tests.  Called from an eval-after-load statement
        if user has customized `allout-run-unit-tests-after-load' non-nil.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]