Merge pull request #221 from purcell/top-level-keymaps

ledger-mode: declare keymaps at the top level
This commit is contained in:
Craig Earls 2013-12-09 12:55:50 -08:00
commit 2b94b264be
3 changed files with 81 additions and 76 deletions

View file

@ -176,40 +176,8 @@ Can indent, complete or align depending on context."
table)
"Syntax table for `ledger-mode' buffers.")
;;;###autoload
(define-derived-mode ledger-mode text-mode "Ledger"
"A mode for editing ledger data files."
(ledger-check-version)
(ledger-schedule-check-available)
(ledger-post-setup)
(set-syntax-table ledger-mode-syntax-table)
(set (make-local-variable 'comment-start) "; ")
(set (make-local-variable 'comment-end) "")
(set (make-local-variable 'indent-tabs-mode) nil)
(if (boundp 'font-lock-defaults)
(set (make-local-variable 'font-lock-defaults)
'(ledger-font-lock-keywords nil t)))
(setq font-lock-extend-region-functions
(list #'font-lock-extend-region-wholelines))
(setq font-lock-multiline nil)
(set (make-local-variable 'pcomplete-parse-arguments-function)
'ledger-parse-arguments)
(set (make-local-variable 'pcomplete-command-completion-function)
'ledger-complete-at-point)
(set (make-local-variable 'pcomplete-termination-string) "")
(add-hook 'post-command-hook 'ledger-highlight-xact-under-point nil t)
(add-hook 'before-revert-hook 'ledger-occur-remove-all-overlays nil t)
(make-variable-buffer-local 'highlight-overlay)
(ledger-init-load-init-file)
(set (make-local-variable 'indent-region-function) 'ledger-post-align-postings)
(let ((map (current-local-map)))
(defvar ledger-mode-map
(let ((map (make-sparse-keymap)))
(define-key map [(control ?c) (control ?a)] 'ledger-add-transaction)
(define-key map [(control ?c) (control ?b)] 'ledger-post-edit-amount)
(define-key map [(control ?c) (control ?c)] 'ledger-toggle-current)
@ -283,9 +251,42 @@ Can indent, complete or align depending on context."
(define-key map [add-xact] '(menu-item "Show upcoming transactions" ledger-schedule-upcoming :enable ledger-schedule-available))
(define-key map [sep3] '(menu-item "--"))
(define-key map [stats] '(menu-item "Ledger Statistics" ledger-display-ledger-stats :enable ledger-works))
(define-key map [fold-buffer] '(menu-item "Narrow to REGEX" ledger-occur))))
(define-key map [fold-buffer] '(menu-item "Narrow to REGEX" ledger-occur))
map)
"Keymap for `ledger-mode'.")
;;;###autoload
(define-derived-mode ledger-mode text-mode "Ledger"
"A mode for editing ledger data files."
(ledger-check-version)
(ledger-schedule-check-available)
(ledger-post-setup)
(set-syntax-table ledger-mode-syntax-table)
(set (make-local-variable 'comment-start) "; ")
(set (make-local-variable 'comment-end) "")
(set (make-local-variable 'indent-tabs-mode) nil)
(if (boundp 'font-lock-defaults)
(set (make-local-variable 'font-lock-defaults)
'(ledger-font-lock-keywords nil t)))
(setq font-lock-extend-region-functions
(list #'font-lock-extend-region-wholelines))
(setq font-lock-multiline nil)
(set (make-local-variable 'pcomplete-parse-arguments-function)
'ledger-parse-arguments)
(set (make-local-variable 'pcomplete-command-completion-function)
'ledger-complete-at-point)
(set (make-local-variable 'pcomplete-termination-string) "")
(add-hook 'post-command-hook 'ledger-highlight-xact-under-point nil t)
(add-hook 'before-revert-hook 'ledger-occur-remove-all-overlays nil t)
(make-variable-buffer-local 'highlight-overlay)
(ledger-init-load-init-file)
(set (make-local-variable 'indent-region-function) 'ledger-post-align-postings))
(defun ledger-set-year (newyear)

View file

@ -431,8 +431,7 @@ moved and recentered. If they aren't strange things happen."
(setq ledger-reconcile-sort-key ,sort-by)
(ledger-reconcile-refresh)))
(define-derived-mode ledger-reconcile-mode text-mode "Reconcile"
"A mode for reconciling ledger entries."
(defvar ledger-reconcile-mode-map
(let ((map (make-sparse-keymap)))
(define-key map [(control ?m)] 'ledger-reconcile-visit)
(define-key map [return] 'ledger-reconcile-visit)
@ -482,8 +481,11 @@ moved and recentered. If they aren't strange things happen."
(define-key map [menu-bar ledger-recon-menu fin] '("Finish" . ledger-reconcile-finish))
(define-key map [menu-bar ledger-recon-menu ref] '("Refresh" . ledger-reconcile-refresh))
(define-key map [menu-bar ledger-recon-menu sav] '("Save" . ledger-reconcile-save))
map)
"Keymap for `ledger-reconcile-mode'.")
(use-local-map map)))
(define-derived-mode ledger-reconcile-mode text-mode "Reconcile"
"A mode for reconciling ledger entries.")
(provide 'ledger-reconcile)

View file

@ -84,45 +84,47 @@ text that should replace the format specifier."
(setq inhibit-read-only t)
(reverse-region (point) (point-max))))
(defvar ledger-report-mode-map
(let ((map (make-sparse-keymap)))
(define-key map [? ] 'scroll-up)
(define-key map [backspace] 'scroll-down)
(define-key map [?r] 'ledger-report-redo)
(define-key map [(shift ?r)] 'ledger-report-reverse-lines)
(define-key map [?s] 'ledger-report-save)
(define-key map [?k] 'ledger-report-kill)
(define-key map [?e] 'ledger-report-edit)
(define-key map [?q] 'ledger-report-quit)
(define-key map [(control ?c) (control ?l) (control ?r)]
'ledger-report-redo)
(define-key map [(control ?c) (control ?l) (control ?S)]
'ledger-report-save)
(define-key map [(control ?c) (control ?l) (control ?k)]
'ledger-report-kill)
(define-key map [(control ?c) (control ?l) (control ?e)]
'ledger-report-edit)
(define-key map [return] 'ledger-report-visit-source)
(define-key map [menu-bar] (make-sparse-keymap "ledger-rep"))
(define-key map [menu-bar ledger-rep] (cons "Reports" map))
(define-key map [menu-bar ledger-rep lrq] '("Quit" . ledger-report-quit))
(define-key map [menu-bar ledger-rep s2] '("--"))
(define-key map [menu-bar ledger-rep lrd] '("Scroll Down" . scroll-down))
(define-key map [menu-bar ledger-rep vis] '("Visit Source" . ledger-report-visit-source))
(define-key map [menu-bar ledger-rep lru] '("Scroll Up" . scroll-up))
(define-key map [menu-bar ledger-rep s1] '("--"))
(define-key map [menu-bar ledger-rep rev] '("Reverse report order" . ledger-report-reverse-lines))
(define-key map [menu-bar ledger-rep s0] '("--"))
(define-key map [menu-bar ledger-rep lrk] '("Kill Report" . ledger-report-kill))
(define-key map [menu-bar ledger-rep lrr] '("Re-run Report" . ledger-report-redo))
(define-key map [menu-bar ledger-rep lre] '("Edit Report" . ledger-report-edit))
(define-key map [menu-bar ledger-rep lrs] '("Save Report" . ledger-report-save))
map)
"Keymap for `ledger-report-mode'.")
(define-derived-mode ledger-report-mode text-mode "Ledger-Report"
"A mode for viewing ledger reports."
(let ((map (make-sparse-keymap)))
(define-key map [? ] 'scroll-up)
(define-key map [backspace] 'scroll-down)
(define-key map [?r] 'ledger-report-redo)
(define-key map [(shift ?r)] 'ledger-report-reverse-lines)
(define-key map [?s] 'ledger-report-save)
(define-key map [?k] 'ledger-report-kill)
(define-key map [?e] 'ledger-report-edit)
(define-key map [?q] 'ledger-report-quit)
(define-key map [(control ?c) (control ?l) (control ?r)]
'ledger-report-redo)
(define-key map [(control ?c) (control ?l) (control ?S)]
'ledger-report-save)
(define-key map [(control ?c) (control ?l) (control ?k)]
'ledger-report-kill)
(define-key map [(control ?c) (control ?l) (control ?e)]
'ledger-report-edit)
(define-key map [return] 'ledger-report-visit-source)
(define-key map [menu-bar] (make-sparse-keymap "ledger-rep"))
(define-key map [menu-bar ledger-rep] (cons "Reports" map))
(define-key map [menu-bar ledger-rep lrq] '("Quit" . ledger-report-quit))
(define-key map [menu-bar ledger-rep s2] '("--"))
(define-key map [menu-bar ledger-rep lrd] '("Scroll Down" . scroll-down))
(define-key map [menu-bar ledger-rep vis] '("Visit Source" . ledger-report-visit-source))
(define-key map [menu-bar ledger-rep lru] '("Scroll Up" . scroll-up))
(define-key map [menu-bar ledger-rep s1] '("--"))
(define-key map [menu-bar ledger-rep rev] '("Reverse report order" . ledger-report-reverse-lines))
(define-key map [menu-bar ledger-rep s0] '("--"))
(define-key map [menu-bar ledger-rep lrk] '("Kill Report" . ledger-report-kill))
(define-key map [menu-bar ledger-rep lrr] '("Re-run Report" . ledger-report-redo))
(define-key map [menu-bar ledger-rep lre] '("Edit Report" . ledger-report-edit))
(define-key map [menu-bar ledger-rep lrs] '("Save Report" . ledger-report-save))
(use-local-map map)))
"A mode for viewing ledger reports.")
(defun ledger-report-value-format-specifier ()
"Return a valid meta-data tag name"