diff options
author | Kyle Meyer <kyle@kyleam.com> | 2015-02-17 21:58:04 -0500 |
---|---|---|
committer | Kyle Meyer <kyle@kyleam.com> | 2015-02-17 21:58:04 -0500 |
commit | 13ed41952162b0bb1ecd9217df2260f98d1b61d6 (patch) | |
tree | 4d0f967db6e65fff82441879be711572ed58477e | |
parent | 0342e7a1425431fe79c630acaca433c9aed8a882 (diff) | |
download | bog-13ed41952162b0bb1ecd9217df2260f98d1b61d6.tar.gz |
Add view mode for Bog
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | bog.el | 64 |
2 files changed, 66 insertions, 1 deletions
@@ -61,6 +61,9 @@ citekey-associated files are organized into subdirectories generated from a =bog-citekey-format= regexp group. +- New minor mode Bog View sets the buffer to read-only and provides + single-letter key for bindings for many Bog commands. + ** Other changes - =bog-goto-citekey-heading-in-buffer= and @@ -1224,6 +1224,7 @@ chosen." (define-key prefix-map "r" 'bog-rename-staged-file-to-citekey) (define-key prefix-map "s" 'bog-search-notes) (define-key prefix-map "w" 'bog-refile) + (define-key prefix-map "v" 'bog-view-mode) (define-key prefix-map "y" 'bog-insert-heading-citekey) (define-key map bog-keymap-prefix prefix-map)) map) @@ -1247,7 +1248,68 @@ if ARG is omitted or nil. (font-lock-fontify-buffer)) (t (remove-hook 'org-font-lock-hook 'bog-fontify-non-heading-citekeys) - (font-lock-fontify-buffer)))) + (font-lock-fontify-buffer) + (bog-view-mode -1)))) + + +;;; View minor mode + +(defvar bog-view-mode-map + (let ((map (make-sparse-keymap))) + (define-key map "b" 'bog-find-citekey-bib) + (define-key map "c" 'bog-search-notes-for-citekey) + (define-key map "f" 'bog-find-citekey-file) + (define-key map "g" 'bog-search-citekey-on-web) + (define-key map "h" 'bog-goto-citekey-heading-in-buffer) + (define-key map "H" 'bog-goto-citekey-heading-in-notes) + (define-key map "i" 'bog-citekey-tree-to-indirect-buffer) + (define-key map "j" 'bog-jump-to-topic-heading) + (define-key map "l" 'bog-open-citekey-link) + (define-key map "L" 'bog-open-first-citekey-link) + (define-key map "n" 'bog-next-non-heading-citekey) + (define-key map "p" 'bog-previous-non-heading-citekey) + (define-key map "q" 'bog-view-quit) + (define-key map "r" 'bog-rename-staged-file-to-citekey) + (define-key map "s" 'bog-search-notes) + map) + "Keymap for Bog View mode.") + +(defvar bog-view--old-buffer-read-only nil) +(defvar bog-view--old-bog-mode nil) + +(define-minor-mode bog-view-mode + "Toggle Bog View mode in this buffer. + +With a prefix argument ARG, enable `bog-view-mode' if ARG is +positive, and disable it otherwise. If called from Lisp, enable +the mode if ARG is omitted or nil. + +Turning on Bog View mode sets the buffer to read-only and gives +many of the Bog commands a single-letter key binding. + +\\<bog-view-mode-map>\ +To exit Bog View mode, type \\[bog-view-quit]. + +\\{bog-view-mode-map}" + :keymap bog-view-mode-map + :group 'bog + :lighter " Bog-view" + :require 'bog + (cond + (bog-view-mode + (setq bog-view--old-buffer-read-only buffer-read-only + buffer-read-only t) + (setq bog-view--old-bog-mode bog-mode) + (bog-mode)) + (t + (setq buffer-read-only bog-view--old-buffer-read-only) + (unless bog-view--old-bog-mode + (bog-mode -1))))) + +(defun bog-view-quit () + "Leave Bog View mode." + (interactive) + (bog-view-mode -1)) (provide 'bog) |