bicycle icon indicating copy to clipboard operation
bicycle copied to clipboard

Cycle outline and code visibility

** Cycle outline and code visibility

This package provides commands for cycling the visibility of outline sections and code blocks. These commands are intended to be bound in ~outline-minor-mode-map~ and do most of the work using functions provided by the ~outline~ package.

This package is named ~bicycle~ because it can additionally make use of the ~hideshow~ package.

If ~hs-minor-mode~ is enabled and point is at the start of a code block, then ~hs-toggle-hiding~ is used instead of some ~outline~ function. When you later cycle the visibility of a section that contains code blocks (which is done using ~outline~ functions), then code block that have been hidden using ~hs-toggle-hiding~, are not extended.

A reasonable configuration could be:

#+begin_src emacs-lisp (use-package bicycle :after outline :bind (:map outline-minor-mode-map ([C-tab] . bicycle-cycle) ([S-tab] . bicycle-cycle-global)))

(use-package prog-mode :config (add-hook 'prog-mode-hook 'outline-minor-mode) (add-hook 'prog-mode-hook 'hs-minor-mode)) #+end_src