unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Ken Manheimer" <ken.manheimer@gmail.com>
Subject: Re: allout-mode fixes - mode-specific settings, auto-fill, deactivation hook
Date: Sat, 8 Jul 2006 12:31:05 -0400	[thread overview]
Message-ID: <2cd46e7f0607080931xeeb9214r30e751420f01b95f@mail.gmail.com> (raw)
In-Reply-To: <2cd46e7f0607080848r50bd436fm4826db512902f26e@mail.gmail.com>

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.

ken

On 7/8/06, Ken Manheimer <ken.manheimer@gmail.com> 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.
> --
> ken
> ken.manheimer@gmail.com
> http://myriadicity.net
>
> 2006-07-08  Ken Manheimer  <ken.manheimer@gmail.com>
>
>         * allout.el: Require 'cl.
>         (allout-mode-deactivate-hook): New hook, is run when allout mode
>         deactivates.
>         (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
>         auto-fill-mode.
>         (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-add-resumptions'.
>         (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
>         deactivation.
>         (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.
>
>
>


-- 
ken
ken.manheimer@gmail.com
http://myriadicity.net

  reply	other threads:[~2006-07-08 16:31 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-08 15:48 allout-mode fixes - mode-specific settings, auto-fill, deactivation hook Ken Manheimer
2006-07-08 16:31 ` Ken Manheimer [this message]
2006-07-08 16:56   ` Ken Manheimer
     [not found]     ` <E1Fza1b-0003Mj-4t@fencepost.gnu.org>
     [not found]       ` <2cd46e7f0607090741k42e10e6ax733c27953e8318d1@mail.gmail.com>
     [not found]         ` <E1FzqAb-00058K-SA@fencepost.gnu.org>
2006-07-10 16:07           ` Ken Manheimer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2cd46e7f0607080931xeeb9214r30e751420f01b95f@mail.gmail.com \
    --to=ken.manheimer@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).