;ELC ;;; Compiled by cyd@localhost on Mon Apr 23 22:25:04 2007 ;;; from file /home/cyd/emacs/lisp/progmodes/hideshow.el ;;; in Emacs version 22.0.99 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`hideshow.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\207" [require easymenu custom-declare-group hideshow nil "Minor mode for hiding and showing program and comment blocks." :prefix "hs-" :group languages] 8) #@54 *Hide the comments too when you do an `hs-hide-all'. (custom-declare-variable 'hs-hide-comments-when-hiding-all 't '(#$ . -789) :type 'boolean :group 'hideshow) #@68 *Hook called when hideshow minor mode is activated or deactivated. (custom-declare-variable 'hs-minor-mode-hook 'nil '(#$ . -956) :type 'hook :group 'hideshow :version "21.1") #@318 *What kind of hidden blocks to open when doing `isearch'. One of the following symbols: code -- open only code blocks comment -- open only comment blocks t -- open both code and comment blocks nil -- open neither code nor comment blocks This has effect iff `search-invisible' is set to `open'. (custom-declare-variable 'hs-isearch-open ''code '(#$ . -1139) :type '(choice (const :tag "open only code blocks" code) (const :tag "open only comment blocks" comment) (const :tag "open both code and comment blocks" t) (const :tag "don't open any of them" nil)) :group 'hideshow) #@1215 *Alist for initializing the hideshow variables for different modes. Each element has the form (MODE START END COMMENT-START FORWARD-SEXP-FUNC ADJUST-BEG-FUNC). If non-nil, hideshow will use these values as regexps to define blocks and comments, respectively for major mode MODE. START, END and COMMENT-START are regular expressions. A block is defined as text surrounded by START and END. As a special case, START may be a list of the form (COMPLEX-START MDATA-SELECTOR), where COMPLEX-START is a regexp w/ multiple parts and MDATA-SELECTOR an integer that specifies which sub-match is the proper place to adjust point, before calling `hs-forward-sexp-func'. Point is adjusted to the beginning of the specified match. For example, see the `hs-special-modes-alist' entry for `bibtex-mode'. For some major modes, `forward-sexp' does not work properly. In those cases, FORWARD-SEXP-FUNC specifies another function to use instead. See the documentation for `hs-adjust-block-beginning' to see what is the use of ADJUST-BEG-FUNC. If any of the elements is left nil or omitted, hideshow tries to guess appropriate values. The regexps should not contain leading or trailing whitespace. Case does not matter. (defvar hs-special-modes-alist '((c-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (c++-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (bibtex-mode ("^@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning)) (#$ . -1744)) #@72 *Function called if non-nil when doing `hs-hide-all' for non-comments. (defvar hs-hide-all-non-comment-function nil (#$ . -3241)) #@154 *If non-nil, hiding remembers internal blocks. This means that when the outer block is shown again, any previously hidden internal blocks remain hidden. (defvar hs-allow-nesting nil (#$ . -3378)) #@205 *Hook called (with `run-hooks') at the end of commands to hide text. These commands include the toggling commands (when the result is to hide a block), `hs-hide-all', `hs-hide-block' and `hs-hide-level'. (defvar hs-hide-hook nil (#$ . -3581)) #@189 *Hook called (with `run-hooks') at the end of commands to show text. These commands include the toggling commands (when the result is to show a block), `hs-show-all' and `hs-show-block'.. (defvar hs-show-hook nil (#$ . -3831)) #@689 *Function called with one arg, OV, a newly initialized overlay. Hideshow puts a unique overlay on each range of text to be hidden in the buffer. Here is a simple example of how to use this variable: (defun display-code-line-counts (ov) (when (eq 'code (overlay-get ov 'hs)) (overlay-put ov 'display (format "... / %d" (count-lines (overlay-start ov) (overlay-end ov)))))) (setq hs-set-up-overlay 'display-code-line-counts) This example shows how to get information from the overlay as well as how to set its `display' property. See `hs-make-overlay' and info node `(elisp)Overlays'. (defvar hs-set-up-overlay nil (#$ . -4065)) #@132 Non-nil if using hideshow mode as a minor mode of some other mode. Use the command `hs-minor-mode' to toggle or set this variable. (defvar hs-minor-mode nil (#$ . 4804)) #@33 Keymap for hideshow minor mode. (defvar hs-minor-mode-map nil (#$ . 4980)) #@31 Menu for hideshow minor mode. (defvar hs-minor-mode-menu nil (#$ . 5061)) #@122 Regexp for beginning of comments. Differs from mode-specific comment regexps in that surrounding whitespace is stripped. (defvar hs-c-start-regexp nil (#$ . 5142)) #@32 Regexp for beginning of block. (defvar hs-block-start-regexp nil (#$ . 5312)) #@225 Element in `hs-block-start-regexp' match data to consider as block start. The internal function `hs-forward-sexp' moves point to the beginning of this element (using `match-beginning') before calling `hs-forward-sexp-func'. (defvar hs-block-start-mdata-select nil (#$ . 5397)) #@26 Regexp for end of block. (defvar hs-block-end-regexp nil (#$ . 5680)) #@314 Function used to do a `forward-sexp'. Should change for Algol-ish modes. For single-character block delimiters -- ie, the syntax table regexp for the character is either `(' or `)' -- `hs-forward-sexp-func' would just be `forward-sexp'. For other modes such as simula, a more specialized function is necessary. (defvar hs-forward-sexp-func 'forward-sexp (#$ . 5757)) #@691 Function used to tweak the block beginning. The block is hidden from the position returned by this function, as opposed to hiding it from the position returned when searching for `hs-block-start-regexp'. For example, in c-like modes, if we wish to also hide the curly braces (if you think they occupy too much space on the screen), this function should return the starting point (at the end of line) of the hidden region. It is called with a single argument ARG which is the position in buffer after the block beginning. It should return the position from where we should start hiding. It should not move the point. See `hs-c-like-adjust-block-beginning' for an example of using this. (defvar hs-adjust-block-beginning nil (#$ . 6133)) #@369 Text of the line where a hidden block begins, set during isearch. You can display this in the mode line by adding the symbol `hs-headline' to the variable `mode-line-format'. For example, (unless (memq 'hs-headline mode-line-format) (setq mode-line-format (append '("-" hs-headline) mode-line-format))) Note that `mode-line-format' is buffer-local. (defvar hs-headline nil (#$ . 6881)) (defalias 'hs-match-data 'match-data) #@119 Delete hideshow overlays in region defined by FROM and TO. Skip "internal" overlays if `hs-allow-nesting' is non-nil. (defalias 'hs-discard-overlays #[(from to) " W\203\n \n\203/\305\306 !\211V\205-\307 !\211\203\310 !\311 !\210\202)\207\312 \"\305\211\203O\f@\313 \314\"\203H\311 !\210\fA\211\204:*\305\207" [to from hs-allow-nesting ov #1=#:--cl-dolist-temp-- nil next-overlay-change hs-overlay-at overlay-end delete-overlay overlays-in overlay-get hs] 4 (#$ . 7331)]) #@656 Return a new overlay in region defined by B and E with type KIND. KIND is either `code' or `comment'. Optional fourth arg B-OFFSET when added to B specifies the actual buffer position where the block begins. Likewise for optional fifth arg E-OFFSET. If unspecified they are taken to be 0 (zero). The following properties are set in the overlay: 'invisible 'hs 'hs-b-offset 'hs-e-offset. Also, depending on variable `hs-isearch-open', the following properties may be present: 'isearch-open-invisible 'isearch-open-invisible-temporary. If variable `hs-set-up-overlay' is non-nil it should specify a function to call with the newly initialized overlay. (defalias 'hs-make-overlay #[(b e kind &optional b-offset e-offset) "\204\306 \204\f\306\307\n \"\f\310=\203\311\202\f\312\313\314#\210\312\314#\210\312\315#\210\312\316 #\210 \317=\204H =\203V\312\320\321#\210\312\322\323#\210\203a!\210*\207" [b-offset e-offset b e hs-isearch-open io 0 make-overlay block code overlay-put invisible hs hs-b-offset hs-e-offset t isearch-open-invisible hs-isearch-show isearch-open-invisible-temporary hs-isearch-show-temporary ov kind hs-set-up-overlay] 4 (#$ . 7833)]) #@141 Delete overlay OV, and set `hs-headline' to nil. This function is meant to be used as the `isearch-open-invisible' property of an overlay. (defalias 'hs-isearch-show #[(ov) "\302\303 !\207" [hs-headline ov nil delete-overlay] 2 (#$ . 9040)]) #@339 Hide or show overlay OV, and set `hs-headline', all depending on HIDE-P. If HIDE-P is non-nil, `hs-headline' is set to nil and overlay OV is hidden. Otherwise, `hs-headline' is set to the line of text at the head of OV, and OV is shown. This function is meant to be used as the `isearch-open-invisible-temporary' property of an overlay. (defalias 'hs-isearch-show-temporary #[(ov hide-p) "?\205 \206\305\n!\212 b\210\306 \210\307\310w\210`) {)\311 \210\310\203?\312\n\313\"\211\203T\314\n\315\f#\210\314\n\313\310#\210\202T\312\n\315\"\211\203T\314\n\313\f#\210\314\n\315\310#\210)\314\n\316\205]\317#\207" [hide-p hs-headline ov start value overlay-start beginning-of-line " " nil force-mode-line-update overlay-get hs-isearch-display overlay-put display invisible hs] 4 (#$ . 9291)]) #@119 Adjust point based on MATCH-DATA and call `hs-forward-sexp-func' w/ ARG. Original match data is restored upon return. (defalias 'hs-forward-sexp #[(match-data arg) "\301 \305\216\306 !\210\n\224b\210 \f!*\207" [save-match-data-internal match-data hs-block-start-mdata-select hs-forward-sexp-func arg ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) set-match-data] 2 (#$ . 10103)]) #@105 Hide a region from BEG to END, marking it as a comment. Optional arg REPOS-END means reposition at end. (defalias 'hs-hide-comment-region #[(beg end &optional repos-end) "b\210\305\210` b\210\305\210`\306 \n\"\210\307 \n\310 %\210*\f\203& \202'b\207" [beg end end-eol beg-eol repos-end nil hs-discard-overlays hs-make-overlay comment] 6 (#$ . 10530)]) #@336 Hide block iff on block beginning. Optional arg END means reposition at end. Optional arg COMMENT-REG is a list of the form (BEGIN END) and specifies the limits of the comment, or nil if the block is not a comment. The block beginning is adjusted by `hs-adjust-block-beginning' and then further adjusted to be at the end of the line. (defalias 'hs-hide-block-at-point #[(&optional end comment-reg) "\203\306@\211A@)\n#\207\307 !\205\215\310\311!\312\225\212\206$\313 !b\210\314\210`)\315\f\316\"\210\314\210`\314`W\203~\317\"\316V\203~\203f\320!\211\203f\321!\210\202r\204r\322\"\210\323\324 Z$\210\n\203\207\202\213 ^b-\207" [comment-reg x end hs-block-start-regexp mdata pure-p hs-hide-comment-region looking-at hs-match-data t 0 identity nil hs-forward-sexp 1 count-lines hs-overlay-at delete-overlay hs-discard-overlays hs-make-overlay code hs-adjust-block-beginning p q ov hs-allow-nesting] 7 (#$ . 10898)]) #@425 Return non-nil if point is inside a comment, otherwise nil. Actually, return a list containing the buffer position of the start and the end of the comment. A comment block can be hidden only if on its starting line there is only whitespace preceding the actual comment beginning. If we are inside of a comment but this condition is not met, we return a list having a nil as its car and the end of comment position as cdr. (defalias 'hs-inside-comment-p #[nil "\212`\304 !\204\305 e\306#\205\222o\204%`\307\310!\210`U\203%\310u\210\202\307\311 [!\210\312\313w\210`\306\314 \210\304\315 P!\204x b\210\307\316!\210\312\313w\210``W\203j` V\203j\304 !\204j`\307\316!\210\312\313w\210\202K\304 !\203v`V\203x\313\307\311 !\210\312\313x\210\313\210`Y\205\221\n\205\217 `D**\207" [q hs-c-start-regexp hidable p looking-at re-search-backward t forward-comment -1 buffer-size " \n\f" nil beginning-of-line "[ ]*" 1] 4 (#$ . 11877)]) #@266 Set up hideshow variables for new buffers. If `hs-special-modes-alist' has information associated with the current buffer's major mode, use that. Otherwise, guess start, end and `comment-start' regexps; `forward-sexp' function; and adjust-block-beginning function. (defalias 'hs-grok-mode-type #[nil "\306\300!\203x\306\301!\203x\203x \203x\307\n \"\211A@\206 \310\211<\2036 @ \211A@)\202< \311\312\f8\206C\313\314\f8\206e\315!\316\317\"\203b\311\211\225SO\202d)\320\f8\206n\321\322\f8\211*\207\323\324\325\"\207" [comment-start comment-end major-mode hs-special-modes-alist lookup start-elem boundp assoc "\\s(" 0 2 "\\s)" 3 regexp-quote string-match " +$" 4 forward-sexp 5 nil error "%s Mode doesn't support Hideshow Minor Mode" hs-block-start-regexp x hs-block-start-mdata-select hs-block-end-regexp c-start-regexp hs-c-start-regexp hs-forward-sexp-func hs-adjust-block-beginning hs-minor-mode mode-name] 4 (#$ . 12836)]) #@93 Reposition point at block-start. Return point, or nil if original point was not in a block. (defalias 'hs-find-block-beginning #[nil "\303`\304\n!\203`\2023\305\n\303\306#\203'\212\307\310\306!\311\"\210`)W\211\203 \203/`\2023b\210\303*\207" [here done hs-block-start-regexp nil looking-at re-search-backward t hs-forward-sexp hs-match-data 1] 4 (#$ . 13813)]) #@71 Recursively hide blocks ARG levels below point in region (MINP MAXP). (defalias 'hs-hide-level-recursive #[(arg minp maxp) "\306 \203`T \307!\210`S \204\310\n\"\210b\210\311\312 !\210`\nW\203J\313\f\n\314#\203J \307V\203>\315 S\n#\210\202\224b\210\316\314!\210\202\nb\207" [minp hs-forward-sexp-func maxp hs-allow-nesting hs-block-start-regexp arg hs-find-block-beginning 1 hs-discard-overlays forward-comment buffer-size re-search-forward t hs-hide-level-recursive hs-hide-block-at-point hs-block-start-mdata-select] 4 (#$ . 14193)]) #@164 Evaluate BODY forms iff variable `hs-minor-mode' is non-nil. In the dynamic context of this macro, `inhibit-point-motion-hooks' and `case-fold-search' are both t. (defalias 'hs-life-goes-on '(macro . #[(&rest body) "\301\302\303\304BBE\207" [body when hs-minor-mode let ((inhibit-point-motion-hooks t) (case-fold-search t))] 5 (#$ . 14753)])) (put 'hs-life-goes-on 'edebug-form-spec '(&rest form)) #@66 Return hideshow overlay at POSITION, or nil if none to be found. (defalias 'hs-overlay-at #[(position) "\304!\305\211 \204\" @\211\203\"\306\n\307\"\205\n A\202 +\207" [position found ov overlays overlays-at nil overlay-get hs] 3 (#$ . 15158)]) #@71 Return non-nil if point is in an already-hidden block, otherwise nil. (defalias 'hs-already-hidden-p #[nil "\212\302 \211\203@\203@b\210\202*\303\210\204*\304 \203*\305 !\203*\306\225b\210)\303\210\307`!)\207" [c-reg hs-block-start-regexp hs-inside-comment-p nil hs-find-block-beginning looking-at 0 hs-overlay-at] 3 (#$ . 15422)]) #@268 Adjust INITIAL, the buffer position after `hs-block-start-regexp'. Actually, point is never moved; a new position is returned that is the end of the C-function header. This adjustment function is meant to be assigned to `hs-adjust-block-beginning' for C-like modes. (defalias 'hs-c-like-adjust-block-beginning #[(initial) "\212Sb\210\301\302 [!\210`)\207" [initial forward-comment buffer-size] 2 (#$ . 15775)]) #@257 Hide all top level blocks, displaying only first and last lines. Move point to the beginning of the line, and run the normal hook `hs-hide-hook'. See documentation for `run-hooks'. If `hs-hide-comments-when-hiding-all' is non-nil, also hide the comments. (defalias 'hs-hide-all #[nil "\205\241\306\211\307\310!\210\212 \204\311ed\"\210eb\210\312\313\f\314 \203)\315\314Q\202*\316R \2047\317d!\210\320d\306#\203\225\321\224\203\\\321\224b\210\203U \210\202\210\322\306!\210\202\210\323 \211\203\207@\203\207\324@A@\"\321V\203\201\322\306\"\210\202\207A@b\210)\307\325T\211\"\210\202/+\326 \210\307\327!\210\330\331!*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks hs-allow-nesting hs-block-start-regexp hs-hide-comments-when-hiding-all t message "Hiding all blocks ..." hs-discard-overlays 0 "\\(" "\\)" "\\|\\(" "" forward-comment re-search-forward 1 hs-hide-block-at-point hs-inside-comment-p count-lines "Hiding ... %d" beginning-of-line "Hiding all blocks ... done" run-hooks hs-hide-hook hs-c-start-regexp re count hs-hide-all-non-comment-function c-reg] 8 (#$ . 16195) nil]) #@60 Show everything then run `hs-show-hook'. See `run-hooks'. (defalias 'hs-show-all #[nil "\205\304\211\305\306!\210\307\310ed\"\210)\305\311!\210\312\313!*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks hs-allow-nesting t message "Showing all blocks ..." nil hs-discard-overlays "Showing all blocks ... done" run-hooks hs-show-hook] 3 (#$ . 17346) nil]) #@184 Select a block and hide it. With prefix arg, reposition at END. Upon completion, point is repositioned and the normal hook `hs-hide-hook' is run. See documentation for `run-hooks'. (defalias 'hs-hide-block #[(&optional end) "\205>\306\211\307 \211\203& @\203 \310 @ A@\"\311X\203&\312\313!\202= \2045\314\f!\2045\315 \205=\316 \"\210\317\320!+\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks c-reg hs-block-start-regexp end t hs-inside-comment-p count-lines 1 message "(not enough comment lines to hide)" looking-at hs-find-block-beginning hs-hide-block-at-point run-hooks hs-hide-hook] 4 (#$ . 17729) "P"]) #@213 Select a block and show it. With prefix arg, reposition at END. Upon completion, point is repositioned and the normal hook `hs-show-hook' is run. See documentation for functions `hs-hide-block' and `run-hooks'. (defalias 'hs-show-block #[(&optional end) "\205\246\306\211\307\212\310\210`)!`\211\205= \203!\311\f!\2026\312\f\313\"\314=\203. \2026\315\f!\312\f\316\"\\b\210\317\f!\210\306*\206\245\320 \310\211\211\203g@\203\200@\211A@)\202\200\321 \203\200\322!\203\200`\323\324\306!\325\"\210`\205\236\205\236\326\"\210 \203\232\202\235Tb+\206\245\327\330!*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks here ov end t hs-overlay-at nil overlay-end overlay-get hs comment overlay-start hs-b-offset delete-overlay hs-inside-comment-p hs-find-block-beginning looking-at hs-forward-sexp hs-match-data 1 hs-discard-overlays run-hooks hs-show-hook q p c-reg x hs-block-start-regexp] 5 (#$ . 18375) "P"]) #@95 Hide all blocks ARG levels below this block. The hook `hs-hide-hook' is run; see `run-hooks'. (defalias 'hs-hide-level #[(arg) "\205\304\211\212\305\306!\210\307 ed#\210\305\310!\210)\311\312!*\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks arg t message "Hiding blocks ..." hs-hide-level-recursive "Hiding blocks ... done" run-hooks hs-hide-hook] 4 (#$ . 19358) "p"]) #@76 Toggle hiding/showing of a block. See `hs-hide-block' and `hs-show-block'. (defalias 'hs-toggle-hiding #[nil "\205\303\211\304 \203\305 \202\306 *\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks t hs-already-hidden-p hs-show-block hs-hide-block] 2 (#$ . 19755) nil]) #@176 Toggle hiding/showing of a block. This command should be bound to a mouse key. Argument E is a mouse event used by `mouse-set-point'. See `hs-hide-block' and `hs-show-block'. (defalias 'hs-mouse-toggle-hiding #[(e) "\205\304\211\305 !\210\306 *\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks e t mouse-set-point hs-toggle-hiding] 2 (#$ . 20054) "@e"]) #@109 Hide the first block of comments in a file. This can be useful if you have huge RCS logs in those comments. (defalias 'hs-hide-initial-comment-block #[nil "\2054\306\211\212eb\210\307\310w\210\311 )\211\2053 @ \211A@) \312 \"\313V\2052\314 \"*+\207" [hs-minor-mode case-fold-search inhibit-point-motion-hooks c-reg x end t " \n\f" nil hs-inside-comment-p count-lines 1 hs-hide-comment-region beg] 4 (#$ . 20435) nil]) #@721 Toggle hideshow minor mode. 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'. The main commands are: `hs-hide-all', `hs-show-all', `hs-hide-block', `hs-show-block', `hs-hide-level' and `hs-toggle-hiding'. There is also `hs-hide-initial-comment-block' and `hs-mouse-toggle-hiding'. 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} (defalias 'hs-minor-mode #[(&optional arg) "\305 \204 \n?\202\306 !\307V\211\2030\310 \210\311\312\313\305\314$\210\315 !\210\316\304!\210\314\317\320!\210\202>\321 !\210\322\323!\210\314\324 \210)\325\326!\207" [hs-headline arg hs-minor-mode hs-minor-mode-menu line-move-ignore-invisible nil prefix-numeric-value 0 hs-grok-mode-type add-hook change-major-mode-hook turn-off-hideshow t easy-menu-add make-local-variable add-to-invisibility-spec (hs . t) easy-menu-remove remove-from-invisibility-spec (hs . t) hs-show-all run-hooks hs-minor-mode-hook] 6 (#$ . 20875) "P"]) #@43 Unconditionally turn off `hs-minor-mode'. (defalias 'turn-off-hideshow #[nil "\300\301!\207" [hs-minor-mode -1] 2 (#$ . 22183)]) (byte-code "\204(\304 \305 B\306\305\307\310#\210\311\305!\204\312\305\313\"\210\314\305\310\315\316\317\320\"B$\210\321\322\323B\"\210\321\324\325\326#\210\327\313\211\203K @\330\n!\210 A\211\204=*\331\332!\207" [hs-minor-mode-map current-load-list var #:--cl-dolist-temp-- make-sparse-keymap hs-minor-mode-menu put variable-documentation "Menu used when hideshow minor mode is active." default-boundp set-default nil easy-menu-do-define "Hide/Show" mapcar #[(ent) "\302 \303H \304H#\210 \305H\203 \207\306\207" [hs-minor-mode-map ent define-key 2 1 0 "-----"] 5] (["Hide Block" hs-hide-block "@"] ["Show Block" hs-show-block "@"] ["Hide All" hs-hide-all "@\210"] ["Show All" hs-show-all "@\223"] ["Hide Level" hs-hide-level "@\f"] ["Toggle Hiding" hs-toggle-hiding "@"] [nil hs-mouse-toggle-hiding [(shift mouse-2)]]) add-to-list minor-mode-map-alist hs-minor-mode minor-mode-alist (hs-minor-mode " hs") t (hs-minor-mode hs-c-start-regexp hs-block-start-regexp hs-block-start-mdata-select hs-block-end-regexp hs-forward-sexp-func hs-adjust-block-beginning) make-variable-buffer-local provide hideshow] 8)