alphapapa / topsy.el

Simple sticky header showing definition beyond top of window
GNU General Public License v3.0
100 stars 6 forks source link
emacs

+TITLE: topsy.el

+PROPERTY: LOGGING nil

Note: This readme works with the org-make-toc https://github.com/alphapapa/org-make-toc package, which automatically updates the table of contents.

+HTML:

[[https://melpa.org/#/package-name][file:https://melpa.org/packages/topsy-badge.svg]] [[https://stable.melpa.org/#/package-name][file:https://stable.melpa.org/packages/topsy-badge.svg]]

This library shows a sticky header at the top of the window. The header shows which definition the top line of the window is within. It's intended as a simple alternative to ~semantic-stickyfunc-mode~. It's especially helpful when, for example, browsing a list of ~occur~ results: when a line is in the middle of a definition, and the top of the definition is beyond the top of the window, ~topsy~ shows what definition the line is in.

Mode-specific functions may be added to ~topsy-mode-functions~.

NOTE: For Org mode buffers, please use [[https://github.com/alphapapa/org-sticky-header][org-sticky-header]].

+ATTR_HTML: :clear right

[[images/screenshot.png]]

** MELPA

If you installed from MELPA, you're done. Just run one of the commands below.

** Quelpa

The recommended way to install is with [[https://github.com/quelpa/quelpa-use-package][quelpa-use-package]], like this:

+BEGIN_SRC elisp

;; Install and load `quelpa-use-package'. (package-install 'quelpa-use-package) (require 'quelpa-use-package)

(use-package topsy :quelpa (topsy :fetcher github :repo "alphapapa/topsy.el") :hook (prog-mode . topsy-mode) (magit-section-mode . topsy-mode))

+END_SRC

** Manual

Put =topsy.el= in your ~load-path~, then:

+BEGIN_SRC elisp

(require 'topsy)

(add-hook 'prog-mode-hook #'topsy-mode) (add-hook 'magit-section-mode-hook #'topsy-mode)

+END_SRC

Run command ~topsy-mode~. You may add it to appropriate hooks, such as ~prog-mode-hook~ and ~magit-section-mode-hook~.

** Tips

** 0.1-pre

Not yet tagged.

* Credits

This package would not have been possible without the following packages: [[https://example.com/foo.el][foo]] which showed me how to bifurcate, and [[https://example.com/bar.el][bar]], which takes care of flanges.

Bug reports, feature requests, suggestions — /oh my/!

There is currently only one function in ~topsy-mode-functions~, one which returns the line that ~beginning-of-defun~ goes to. It should be useful in many major modes, but suggestions for additional, mode-specific functions are welcome.

GPLv3

Local Variables:

eval: (require 'org-make-toc)

before-save-hook: org-make-toc

org-export-with-properties: ()

org-export-with-title: t

End: