Added ability to add xact with date only.
ledger-add-entry now checks to see if more than the date was given at the prompt. If there is only a date it inserts the dat at the correct place in the ledger and puts the point at the end of the line for entering transaction details
This commit is contained in:
parent
867b84c52e
commit
29f409ce72
1 changed files with 79 additions and 75 deletions
154
lisp/ldg-mode.el
154
lisp/ldg-mode.el
|
|
@ -43,77 +43,77 @@ customizable to ease retro-entry.")
|
|||
|
||||
;;;###autoload
|
||||
(define-derived-mode ledger-mode text-mode "Ledger"
|
||||
"A mode for editing ledger data files."
|
||||
(ledger-check-version)
|
||||
(ledger-post-setup)
|
||||
"A mode for editing ledger data files."
|
||||
(ledger-check-version)
|
||||
(ledger-post-setup)
|
||||
|
||||
(set (make-local-variable 'comment-start) " ; ")
|
||||
(set (make-local-variable 'comment-end) "")
|
||||
(set (make-local-variable 'indent-tabs-mode) nil)
|
||||
(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)))
|
||||
(if (boundp 'font-lock-defaults)
|
||||
(set (make-local-variable 'font-lock-defaults)
|
||||
'(ledger-font-lock-keywords nil t)))
|
||||
|
||||
(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) "")
|
||||
(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) "")
|
||||
|
||||
(let ((map (current-local-map)))
|
||||
(define-key map [(control ?c) (control ?a)] 'ledger-add-entry)
|
||||
(define-key map [(control ?c) (control ?d)] 'ledger-delete-current-entry)
|
||||
(define-key map [(control ?c) (control ?y)] 'ledger-set-year)
|
||||
(define-key map [(control ?c) (control ?m)] 'ledger-set-month)
|
||||
(define-key map [(control ?c) (control ?c)] 'ledger-toggle-current)
|
||||
(define-key map [(control ?c) (control ?e)] 'ledger-toggle-current-entry)
|
||||
(define-key map [(control ?c) (control ?r)] 'ledger-reconcile)
|
||||
(define-key map [(control ?c) (control ?s)] 'ledger-sort-region)
|
||||
(define-key map [(control ?c) (control ?t)] 'ledger-test-run)
|
||||
(define-key map [(control ?c) (control ?v)] 'ledger-post-edit-amount)
|
||||
(define-key map [(control ?c) (control ?f)] 'ledger-occur)
|
||||
(define-key map [tab] 'pcomplete)
|
||||
(define-key map [(control ?i)] 'pcomplete)
|
||||
(define-key map [(control ?c) tab] 'ledger-fully-complete-entry)
|
||||
(define-key map [(control ?c) (control ?i)] 'ledger-fully-complete-entry)
|
||||
(define-key map [(control ?c) (control ?o) (control ?r)] 'ledger-report)
|
||||
(define-key map [(control ?c) (control ?o) (control ?g)] 'ledger-report-goto)
|
||||
(define-key map [(control ?c) (control ?o) (control ?a)] 'ledger-report-redo)
|
||||
(define-key map [(control ?c) (control ?o) (control ?s)] 'ledger-report-save)
|
||||
(define-key map [(control ?c) (control ?o) (control ?e)] 'ledger-report-edit)
|
||||
(define-key map [(control ?c) (control ?o) (control ?k)] 'ledger-report-kill)
|
||||
(let ((map (current-local-map)))
|
||||
(define-key map [(control ?c) (control ?a)] 'ledger-add-entry)
|
||||
(define-key map [(control ?c) (control ?d)] 'ledger-delete-current-entry)
|
||||
(define-key map [(control ?c) (control ?y)] 'ledger-set-year)
|
||||
(define-key map [(control ?c) (control ?m)] 'ledger-set-month)
|
||||
(define-key map [(control ?c) (control ?c)] 'ledger-toggle-current)
|
||||
(define-key map [(control ?c) (control ?e)] 'ledger-toggle-current-entry)
|
||||
(define-key map [(control ?c) (control ?r)] 'ledger-reconcile)
|
||||
(define-key map [(control ?c) (control ?s)] 'ledger-sort-region)
|
||||
(define-key map [(control ?c) (control ?t)] 'ledger-test-run)
|
||||
(define-key map [(control ?c) (control ?v)] 'ledger-post-edit-amount)
|
||||
(define-key map [(control ?c) (control ?f)] 'ledger-occur)
|
||||
(define-key map [tab] 'pcomplete)
|
||||
(define-key map [(control ?i)] 'pcomplete)
|
||||
(define-key map [(control ?c) tab] 'ledger-fully-complete-entry)
|
||||
(define-key map [(control ?c) (control ?i)] 'ledger-fully-complete-entry)
|
||||
(define-key map [(control ?c) (control ?o) (control ?r)] 'ledger-report)
|
||||
(define-key map [(control ?c) (control ?o) (control ?g)] 'ledger-report-goto)
|
||||
(define-key map [(control ?c) (control ?o) (control ?a)] 'ledger-report-redo)
|
||||
(define-key map [(control ?c) (control ?o) (control ?s)] 'ledger-report-save)
|
||||
(define-key map [(control ?c) (control ?o) (control ?e)] 'ledger-report-edit)
|
||||
(define-key map [(control ?c) (control ?o) (control ?k)] 'ledger-report-kill)
|
||||
|
||||
(define-key map [(meta ?p)] 'ledger-post-prev-xact)
|
||||
(define-key map [(meta ?n)] 'ledger-post-next-xact)
|
||||
(define-key map [(meta ?p)] 'ledger-post-prev-xact)
|
||||
(define-key map [(meta ?n)] 'ledger-post-next-xact)
|
||||
|
||||
(define-key map [menu-bar] (make-sparse-keymap "ldg-menu"))
|
||||
(define-key map [menu-bar ldg-menu] (cons "Ledger" map))
|
||||
(define-key map [menu-bar] (make-sparse-keymap "ldg-menu"))
|
||||
(define-key map [menu-bar ldg-menu] (cons "Ledger" map))
|
||||
|
||||
(define-key map [report-kill] '(menu-item "Kill Report" ledger-report-kill :enable ledger-works))
|
||||
(define-key map [report-edit] '(menu-item "Edit Report" ledger-report-edit :enable ledger-works))
|
||||
(define-key map [report-save] '(menu-item "Save Report" ledger-report-save :enable ledger-works))
|
||||
(define-key map [report-rrun] '(menu-item "Re-run Report" ledger-report-redo :enable ledger-works))
|
||||
(define-key map [report-goto] '(menu-item "Goto Report" ledger-report-goto :enable ledger-works))
|
||||
(define-key map [report-run] '(menu-item "Run Report" ledger-report :enable ledger-works))
|
||||
(define-key map [sep5] '(menu-item "--"))
|
||||
(define-key map [set-month] '(menu-item "Set Month" ledger-set-month :enable ledger-works))
|
||||
(define-key map [set-year] '(menu-item "Set Year" ledger-set-year :enable ledger-works))
|
||||
(define-key map [sep1] '("--"))
|
||||
(define-key map [sort-buff] '(menu-item "Sort Buffer" ledger-sort-buffer))
|
||||
(define-key map [sort-reg] '(menu-item "Sort Region" ledger-sort-region :enable mark-active))
|
||||
(define-key map [sep2] '(menu-item "--"))
|
||||
(define-key map [toggle-post] '(menu-item "Toggle Current Posting" ledger-toggle-current))
|
||||
(define-key map [toggle-xact] '(menu-item "Toggle Current Transaction" ledger-toggle-current-entry))
|
||||
(define-key map [sep4] '(menu-item "--"))
|
||||
(define-key map [edit-amount] '(menu-item "Calc on Amount" ledger-post-edit-amount))
|
||||
(define-key map [sep] '(menu-item "--"))
|
||||
(define-key map [delete-xact] '(menu-item "Delete Entry" ledger-delete-current-entry))
|
||||
(define-key map [add-xact] '(menu-item "Add Entry" ledger-add-entry :enable ledger-works))
|
||||
(define-key map [sep3] '(menu-item "--"))
|
||||
(define-key map [reconcile] '(menu-item "Reconcile Account" ledger-reconcile :enable ledger-works))
|
||||
(define-key map [reconcile] '(menu-item "Hide Xacts" ledger-occur))
|
||||
))
|
||||
(define-key map [report-kill] '(menu-item "Kill Report" ledger-report-kill :enable ledger-works))
|
||||
(define-key map [report-edit] '(menu-item "Edit Report" ledger-report-edit :enable ledger-works))
|
||||
(define-key map [report-save] '(menu-item "Save Report" ledger-report-save :enable ledger-works))
|
||||
(define-key map [report-rrun] '(menu-item "Re-run Report" ledger-report-redo :enable ledger-works))
|
||||
(define-key map [report-goto] '(menu-item "Goto Report" ledger-report-goto :enable ledger-works))
|
||||
(define-key map [report-run] '(menu-item "Run Report" ledger-report :enable ledger-works))
|
||||
(define-key map [sep5] '(menu-item "--"))
|
||||
(define-key map [set-month] '(menu-item "Set Month" ledger-set-month :enable ledger-works))
|
||||
(define-key map [set-year] '(menu-item "Set Year" ledger-set-year :enable ledger-works))
|
||||
(define-key map [sep1] '("--"))
|
||||
(define-key map [sort-buff] '(menu-item "Sort Buffer" ledger-sort-buffer))
|
||||
(define-key map [sort-reg] '(menu-item "Sort Region" ledger-sort-region :enable mark-active))
|
||||
(define-key map [sep2] '(menu-item "--"))
|
||||
(define-key map [toggle-post] '(menu-item "Toggle Current Posting" ledger-toggle-current))
|
||||
(define-key map [toggle-xact] '(menu-item "Toggle Current Transaction" ledger-toggle-current-entry))
|
||||
(define-key map [sep4] '(menu-item "--"))
|
||||
(define-key map [edit-amount] '(menu-item "Calc on Amount" ledger-post-edit-amount))
|
||||
(define-key map [sep] '(menu-item "--"))
|
||||
(define-key map [delete-xact] '(menu-item "Delete Entry" ledger-delete-current-entry))
|
||||
(define-key map [add-xact] '(menu-item "Add Entry" ledger-add-entry :enable ledger-works))
|
||||
(define-key map [sep3] '(menu-item "--"))
|
||||
(define-key map [reconcile] '(menu-item "Reconcile Account" ledger-reconcile :enable ledger-works))
|
||||
(define-key map [reconcile] '(menu-item "Hide Xacts" ledger-occur))
|
||||
))
|
||||
|
||||
(defun ledger-time-less-p (t1 t2)
|
||||
"Say whether time value T1 is less than time value T2."
|
||||
|
|
@ -193,17 +193,21 @@ Return the difference in the format of a time value."
|
|||
(string-to-number (match-string 2 date))
|
||||
(string-to-number (match-string 1 date)))))
|
||||
(ledger-find-slot date)))
|
||||
(save-excursion
|
||||
(insert
|
||||
(with-temp-buffer
|
||||
(setq exit-code
|
||||
(apply #'ledger-exec-ledger ledger-buf ledger-buf "entry"
|
||||
(mapcar 'eval args)))
|
||||
(goto-char (point-min))
|
||||
(if (looking-at "Error: ")
|
||||
(error (buffer-string))
|
||||
(buffer-string)))
|
||||
"\n"))))
|
||||
(if (> (length args) 1)
|
||||
(save-excursion
|
||||
(insert
|
||||
(with-temp-buffer
|
||||
(setq exit-code
|
||||
(apply #'ledger-exec-ledger ledger-buf ledger-buf "entry"
|
||||
(mapcar 'eval args)))
|
||||
(goto-char (point-min))
|
||||
(if (looking-at "Error: ")
|
||||
(error (buffer-string))
|
||||
(buffer-string)))
|
||||
"\n"))
|
||||
(progn
|
||||
(insert (car args) " \n\n")
|
||||
(end-of-line -1)))))
|
||||
|
||||
(defun ledger-current-entry-bounds ()
|
||||
(save-excursion
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue