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
next prev parent 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
* 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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.