From a23c5037e7a10473af54a8db1ebd49dcea4f832f Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Fri, 18 Feb 2000 23:35:24 +0000 Subject: [PATCH] (hs-flag-region): No longer use `intangible' overlay property. (hs-toggle-hiding): New command. (hs-mouse-toggle-hiding): Use `hs-toggle-hiding'. (hs-minor-mode): Move call to `hs-grok-mode-type' early on. Fix omission bug: Run `hs-minor-mode-hook' for both activation and deactivation. --- lisp/ChangeLog | 52 +++++++++++++++++++++++--------------- lisp/progmodes/hideshow.el | 33 ++++++++++++++---------- 2 files changed, 52 insertions(+), 33 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index dabc4653ec3..e44ba00336d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2000-02-18 Thien-Thi Nguyen + + * progmodes/hideshow.el (hs-flag-region): No longer use + `intangible' overlay property. + + (hs-toggle-hiding): New command. + (hs-mouse-toggle-hiding): Use `hs-toggle-hiding'. + + (hs-minor-mode): Move call to `hs-grok-mode-type' early on. + Fix omission bug: Run `hs-minor-mode-hook' for both activation + and deactivation. + 2000-02-18 Gerd Moellmann * emacs-lisp/cl-macs.el (caar, cadr, cdar, cddr): Add defsetfs. @@ -27,11 +39,11 @@ 2000-02-17 Gerd Moellmann - * dired-aux.el (dired-do-copy): Remove spurious character.`n' + * dired-aux.el (dired-do-copy): Remove spurious character.`n' within the code. - + 2000-02-16 Dave Love - + * faces.el: Don't require custom. Add more specific :groups to various deffaces. (set-face-attribute): Purecopy args. @@ -446,7 +458,7 @@ (idlwave-statement-match): Fixed problem with assignment regexp. (idlwave-font-lock-keywords): Improved regexp for keyword parameters. - (idlwave-surround): New argument LENGTH to support padding of + (idlwave-surround): New argument LENGTH to support padding of operators longer than 1 char. * progmodes/idlw-shell.el (idlwave-shell-print): Fixed bug with @@ -466,7 +478,7 @@ (idlwave-shell-make-new-bp-overlay): Fixed glyph display for Emacs 21. (idlwave-shell-print-expression-function): New option. - + * progmodes/idlw-toolbar.el (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere): Keybindings prefix is now `tool-bar' instead of `toolbar'. @@ -534,7 +546,7 @@ documentation. (view-mode-exit): Keep entry in `view-return-to-alist' only when a window is not deleted. Modifies change 1998-04-26. - + 2000-01-31 Gerd Moellmann * windmove.el: New file. @@ -542,7 +554,7 @@ * progmodes/ebnf2ps.el, progmodes/ebnf-bnf.el, progmodes/ebnf-iso.el, progmodes/ebnf-otz.el, progmodes/ebnf-yac.el: Update copyright and license info. - + * jit-lock.el (jit-lock-function): Widen before calculating end position. (jit-lock-stealth-chunk-start): Rewritten. @@ -597,7 +609,7 @@ currently selected frame. (iswitchb-make-buflist): If iswitchb-use-frame-buffer-list is non-nil, pass the selected frame to function buffer-list. - + 2000-01-29 Vinicius Jose Latorre * progmodes/ebnf2ps.el (ebnf-syntax): Doc fix @@ -702,7 +714,7 @@ * subr.el (dolist, dotimes): Copied from cl-macs.el and made to work. - * mail/undigest.el (rmail-digest-end-regexps): + * mail/undigest.el (rmail-digest-end-regexps): Variable replaces rmail-digest-end-regexp. Allows multiple regexps for detecting the end line. (undigestify-rmail-message): Corresponding changes. @@ -731,7 +743,7 @@ * emacs-lisp/copyright.el (copyright-update): Removed the requirement for a trailing space from `copyright-regexp', to support copyrights with owner specified on a separate line.. - + * align.el: New file. * menu-bar.el (menu-bar-tools-menu): Add EUDC submenu. @@ -769,7 +781,7 @@ * net/eudc-bob.el, net/eudc-export.el, net/eudc-hotlist.el, net/eudc-vars.el, net/eudc.el, net/eudcb-bbdb.el, net/eudcb-ldap.el, net/eudcb-ph.el, net/ldap.el: New files. - + * add-log.el (add-change-log-entry): Fix error trying an `(insert nil)'. @@ -788,7 +800,7 @@ debug-on-error, and propagate new value to global binding, if eval-expression-debug-on-error is non-nil, (eval-expression-debug-on-error): Change doc string. - + 2000-01-11 Richard M. Stallman * emacs-lisp/edebug.el (with-syntax-table): Add a def-edebug-spec. @@ -818,14 +830,14 @@ * add-log.el (add-log-current-defun): Handle user-defined add-log-current-function returning nil, - + * add-log.el (add-change-log-entry): Insert version number if having found a current function * add-log.el (add-log-current-defun): Call `add-log-current-defun-function'. Try matches at level 0 and level 1. Strip whitespace from defun found. - + 2000-01-10 John Wiegley * allout.el (isearch-done/outline-provisions): Added `edit' @@ -840,7 +852,7 @@ * vc-hooks.el (vc-parse-buffer): Handle mixtures of dates before and after the year 2000. - + * textmodes/ispell-merged.el (xemacsp, version18p, version-20p): Add ispell- prefix. @@ -888,13 +900,13 @@ already accepted on this line. Don't allow query-replace on line starting with math characters. Doesn't resend a line already sent to ispell process. Fixes alignment error bug. - + 2000-01-10 Richard M. Stallman - * dired-x.el (dired-guess-shell-alist-default): + * dired-x.el (dired-guess-shell-alist-default): Suggest xloadimage, which is free, not xv, which isn't. - * ange-ftp.el (ange-ftp-file-name-nondirectory): + * ange-ftp.el (ange-ftp-file-name-nondirectory): Don't ever include the host name or user name in the value. 2000-01-09 Gerd Moellmann @@ -904,7 +916,7 @@ 2000-01-09 Stephen Eglen - * dired-x.el (dired-guess-shell-alist-default): Suggest xv + * dired-x.el (dired-guess-shell-alist-default): Suggest xv for .png files. 2000-01-09 Per Abrahamsen @@ -916,7 +928,7 @@ * progmodes/cperl-mode.el: Replace ^F with ^L. * sendmail.el (toplevel): Provide `sendmail' when compiling - before `require'ing rmail and mailalias to prevent infinite + before `require'ing rmail and mailalias to prevent infinite recursion. 2000-01-08 Dave Love diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index 879e14876ed..14e7fe07b59 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el @@ -29,7 +29,7 @@ ;; * Commands provided ;; -;; This file provides Hideshow Minor Mode. When active, eight commands +;; This file provides Hideshow Minor Mode. When active, nine commands ;; are available, implementing block hiding and showing. They (and their ;; keybindings) are: ;; @@ -39,6 +39,7 @@ ;; hs-show-all C-c S ;; hs-show-region C-c R ;; hs-hide-level C-c L +;; hs-toggle-hiding ;; hs-mouse-toggle-hiding [(shift button-2)] ;; hs-hide-initial-comment-block ;; @@ -105,8 +106,7 @@ ;; ;; where X = {emacs-lisp,c,c++,perl,...}. You can also manually toggle ;; hideshow minor mode by typing `M-x hs-minor-mode'. After hideshow is -;; activated, `hs-minor-mode-hook' is run w/ `run-hooks'. A good hook -;; to add is `hs-hide-initial-comment-block'. +;; activated or deactivated, `hs-minor-mode-hook' is run w/ `run-hooks'. ;; * Bugs ;; @@ -183,7 +183,7 @@ :group 'hideshow) (defcustom hs-minor-mode-hook nil - "*Hook called when hideshow minor mode is activated." + "*Hook called when hideshow minor mode is activated or deactivated." :type 'hook :group 'hideshow) @@ -395,7 +395,6 @@ on what kind of block it is suppose to hide." (when flag (let ((overlay (make-overlay from to))) (overlay-put overlay 'invisible 'hs) - (overlay-put overlay 'intangible t) (overlay-put overlay 'hs flag) (when (or (eq hs-isearch-open t) (eq hs-isearch-open flag)) (overlay-put overlay 'isearch-open-invisible 'hs-isearch-show) @@ -766,6 +765,15 @@ The hook `hs-hide-hook' is run; see `run-hooks'." (hs-safety-is-job-n) (run-hooks 'hs-hide-hook))) +(defun hs-toggle-hiding () + "Toggle hiding/showing of a block. +See `hs-hide-block' and `hs-show-block'." + (interactive) + (hs-life-goes-on + (if (hs-already-hidden-p) + (hs-show-block) + (hs-hide-block)))) + (defun hs-mouse-toggle-hiding (e) "Toggle hiding/showing of a block. This command should be bound to a mouse key. @@ -774,9 +782,7 @@ See `hs-hide-block' and `hs-show-block'." (interactive "@e") (hs-life-goes-on (mouse-set-point e) - (if (hs-already-hidden-p) - (hs-show-block) - (hs-hide-block)))) + (hs-toggle-hiding))) (defun hs-hide-initial-comment-block () "Hide the first block of comments in a file. @@ -800,7 +806,6 @@ With ARG, turn hideshow minor mode on if ARG is positive, off otherwise. When hideshow minor mode is on, the menu bar is augmented with hideshow commands and the hideshow commands are enabled. The value '(hs . t) is added to `buffer-invisibility-spec'. -Last, the normal hook `hs-minor-mode-hook' is run; see `run-hooks'. The main commands are: `hs-hide-all', `hs-show-all', `hs-hide-block', `hs-show-block', `hs-hide-level' and `hs-show-region'. There is also @@ -809,6 +814,8 @@ The main commands are: `hs-hide-all', `hs-show-all', `hs-hide-block', Turning hideshow minor mode off reverts the menu bar and the variables to default values and disables the hideshow commands. +Lastly, the normal hook `hs-minor-mode-hook' is run using `run-hooks'. + Key bindings: \\{hs-minor-mode-map}" @@ -819,14 +826,14 @@ Key bindings: (> (prefix-numeric-value arg) 0))) (if hs-minor-mode (progn + (hs-grok-mode-type) (easy-menu-add hs-minor-mode-menu) (make-variable-buffer-local 'line-move-ignore-invisible) (setq line-move-ignore-invisible t) - (add-to-invisibility-spec '(hs . t)) ; hs invisible - (hs-grok-mode-type) - (run-hooks 'hs-minor-mode-hook)) + (add-to-invisibility-spec '(hs . t))) (easy-menu-remove hs-minor-mode-menu) - (remove-from-invisibility-spec '(hs . t)))) + (remove-from-invisibility-spec '(hs . t))) + (run-hooks 'hs-minor-mode-hook)) ;;--------------------------------------------------------------------------- ;; load-time actions -- 2.39.5