Added some missing autoloads for the new ledger-mode
This commit is contained in:
parent
056994497e
commit
7f5c1c81a1
5 changed files with 90 additions and 80 deletions
|
|
@ -22,6 +22,8 @@
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(define-derived-mode ledger-mode text-mode "Ledger"
|
(define-derived-mode ledger-mode text-mode "Ledger"
|
||||||
"A mode for editing ledger data files."
|
"A mode for editing ledger data files."
|
||||||
|
(ledger-post-setup)
|
||||||
|
|
||||||
(set (make-local-variable 'comment-start) " ; ")
|
(set (make-local-variable 'comment-start) " ; ")
|
||||||
(set (make-local-variable 'comment-end) "")
|
(set (make-local-variable 'comment-end) "")
|
||||||
(set (make-local-variable 'indent-tabs-mode) nil)
|
(set (make-local-variable 'indent-tabs-mode) nil)
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,10 @@
|
||||||
|
|
||||||
(require 'ldg-post)
|
(require 'ldg-post)
|
||||||
|
|
||||||
|
(autoload #'ledger-mode "ldg-mode" nil t)
|
||||||
|
|
||||||
|
(autoload #'ledger-fully-complete-entry "ldg-complete" nil t)
|
||||||
|
|
||||||
(autoload #'ledger-texi-update-test "ldg-texi" nil t)
|
(autoload #'ledger-texi-update-test "ldg-texi" nil t)
|
||||||
(autoload #'ledger-texi-update-examples "ldg-texi" nil t)
|
(autoload #'ledger-texi-update-examples "ldg-texi" nil t)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,13 @@ to choose from."
|
||||||
(delete-char 1)))))))
|
(delete-char 1)))))))
|
||||||
(goto-char pos)))
|
(goto-char pos)))
|
||||||
|
|
||||||
|
(defun ledger-next-amount (&optional end)
|
||||||
|
(when (re-search-forward "\\( \\|\t\\| \t\\)[ \t]*-?\\([A-Z$]+ *\\)?\\(-?[0-9,]+?\\)\\(.[0-9]+\\)?\\( *[A-Z$]+\\)?\\([ \t]*@@?[^\n;]+?\\)?\\([ \t]+;.+?\\)?$" (marker-position end) t)
|
||||||
|
(goto-char (match-beginning 0))
|
||||||
|
(skip-syntax-forward " ")
|
||||||
|
(- (or (match-end 4)
|
||||||
|
(match-end 3)) (point))))
|
||||||
|
|
||||||
(defun ledger-align-amounts (&optional column)
|
(defun ledger-align-amounts (&optional column)
|
||||||
"Align amounts in the current region.
|
"Align amounts in the current region.
|
||||||
This is done so that the last digit falls in COLUMN, which defaults to 52."
|
This is done so that the last digit falls in COLUMN, which defaults to 52."
|
||||||
|
|
@ -164,6 +171,4 @@ This is done so that the last digit falls in COLUMN, which defaults to 52."
|
||||||
(add-hook 'after-change-functions 'ledger-post-maybe-align t t))
|
(add-hook 'after-change-functions 'ledger-post-maybe-align t t))
|
||||||
(add-hook 'after-save-hook #'(lambda () (setq ledger-post-current-list nil))))
|
(add-hook 'after-save-hook #'(lambda () (setq ledger-post-current-list nil))))
|
||||||
|
|
||||||
(add-hook 'ledger-mode-hook 'ledger-post-setup)
|
|
||||||
|
|
||||||
(provide 'ldg-post)
|
(provide 'ldg-post)
|
||||||
|
|
|
||||||
|
|
@ -96,64 +96,64 @@
|
||||||
|
|
||||||
(cons 'progn defs)))
|
(cons 'progn defs)))
|
||||||
|
|
||||||
(put 'ledger-define-regexp 'lisp-indent-function 2)
|
(put 'ledger-define-regexp 'lisp-indent-function 1)
|
||||||
|
|
||||||
(ledger-define-regexp date
|
(ledger-define-regexp date
|
||||||
(let ((sep '(or ?- (any ?. ?/)))) ; can't do (any ?- ?. ?/) due to bug
|
(let ((sep '(or ?- (any ?. ?/)))) ; can't do (any ?- ?. ?/) due to bug
|
||||||
(rx (group
|
(rx (group
|
||||||
(and (? (= 4 num)
|
(and (? (= 4 num)
|
||||||
(eval sep))
|
(eval sep))
|
||||||
(and num (? num))
|
(and num (? num))
|
||||||
(eval sep)
|
(eval sep)
|
||||||
(and num (? num))))))
|
(and num (? num))))))
|
||||||
"Match a single date, in its 'written' form.")
|
"Match a single date, in its 'written' form.")
|
||||||
|
|
||||||
(ledger-define-regexp full-date
|
(ledger-define-regexp full-date
|
||||||
(macroexpand
|
(macroexpand
|
||||||
`(rx (and (regexp ,ledger-date-regexp)
|
`(rx (and (regexp ,ledger-date-regexp)
|
||||||
(? (and ?= (regexp ,ledger-date-regexp))))))
|
(? (and ?= (regexp ,ledger-date-regexp))))))
|
||||||
"Match a compound date, of the form ACTUAL=EFFECTIVE"
|
"Match a compound date, of the form ACTUAL=EFFECTIVE"
|
||||||
(actual date)
|
(actual date)
|
||||||
(effective date))
|
(effective date))
|
||||||
|
|
||||||
(ledger-define-regexp state
|
(ledger-define-regexp state
|
||||||
(rx (group (any ?! ?*)))
|
(rx (group (any ?! ?*)))
|
||||||
"Match a transaction or posting's \"state\" character.")
|
"Match a transaction or posting's \"state\" character.")
|
||||||
|
|
||||||
(ledger-define-regexp code
|
(ledger-define-regexp code
|
||||||
(rx (and ?\( (group (+? (not (any ?\))))) ?\)))
|
(rx (and ?\( (group (+? (not (any ?\))))) ?\)))
|
||||||
"Match the transaction code.")
|
"Match the transaction code.")
|
||||||
|
|
||||||
(ledger-define-regexp long-space
|
(ledger-define-regexp long-space
|
||||||
(rx (and (*? blank)
|
(rx (and (*? blank)
|
||||||
(or (and ? (or ? ?\t)) ?\t)))
|
(or (and ? (or ? ?\t)) ?\t)))
|
||||||
"Match a \"long space\".")
|
"Match a \"long space\".")
|
||||||
|
|
||||||
(ledger-define-regexp note
|
(ledger-define-regexp note
|
||||||
(rx (group (+ nonl)))
|
(rx (group (+ nonl)))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp end-note
|
(ledger-define-regexp end-note
|
||||||
(macroexpand
|
(macroexpand
|
||||||
`(rx (and (regexp ,ledger-long-space-regexp) ?\;
|
`(rx (and (regexp ,ledger-long-space-regexp) ?\;
|
||||||
(regexp ,ledger-note-regexp))))
|
(regexp ,ledger-note-regexp))))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp full-note
|
(ledger-define-regexp full-note
|
||||||
(macroexpand
|
(macroexpand
|
||||||
`(rx (and line-start (+ blank)
|
`(rx (and line-start (+ blank)
|
||||||
?\; (regexp ,ledger-note-regexp))))
|
?\; (regexp ,ledger-note-regexp))))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp xact-line
|
(ledger-define-regexp xact-line
|
||||||
(macroexpand
|
(macroexpand
|
||||||
`(rx (and line-start
|
`(rx (and line-start
|
||||||
(regexp ,ledger-full-date-regexp)
|
(regexp ,ledger-full-date-regexp)
|
||||||
(? (and (+ blank) (regexp ,ledger-state-regexp)))
|
(? (and (+ blank) (regexp ,ledger-state-regexp)))
|
||||||
(? (and (+ blank) (regexp ,ledger-code-regexp)))
|
(? (and (+ blank) (regexp ,ledger-code-regexp)))
|
||||||
(+ blank) (+? nonl)
|
(+ blank) (+? nonl)
|
||||||
(? (regexp ,ledger-end-note-regexp))
|
(? (regexp ,ledger-end-note-regexp))
|
||||||
line-end)))
|
line-end)))
|
||||||
"Match a transaction's first line (and optional notes)."
|
"Match a transaction's first line (and optional notes)."
|
||||||
(actual-date full-date actual)
|
(actual-date full-date actual)
|
||||||
(effective-date full-date effective)
|
(effective-date full-date effective)
|
||||||
|
|
@ -162,84 +162,84 @@
|
||||||
(note end-note))
|
(note end-note))
|
||||||
|
|
||||||
(ledger-define-regexp account
|
(ledger-define-regexp account
|
||||||
(rx (group (and (not (any blank ?\[ ?\( ?: ?\;)) (*? nonl))))
|
(rx (group (and (not (any blank ?\[ ?\( ?: ?\;)) (*? nonl))))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp account-kind
|
(ledger-define-regexp account-kind
|
||||||
(rx (group (? (any ?\[ ?\())))
|
(rx (group (? (any ?\[ ?\())))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp full-account
|
(ledger-define-regexp full-account
|
||||||
(macroexpand
|
(macroexpand
|
||||||
`(rx (and (regexp ,ledger-account-kind-regexp)
|
`(rx (and (regexp ,ledger-account-kind-regexp)
|
||||||
(regexp ,ledger-account-regexp)
|
(regexp ,ledger-account-regexp)
|
||||||
(? (any ?\] ?\))))))
|
(? (any ?\] ?\))))))
|
||||||
""
|
""
|
||||||
(kind account-kind)
|
(kind account-kind)
|
||||||
(name account))
|
(name account))
|
||||||
|
|
||||||
(ledger-define-regexp commodity
|
(ledger-define-regexp commodity
|
||||||
(rx (group
|
(rx (group
|
||||||
(or (and ?\" (+ (not (any ?\"))) ?\")
|
(or (and ?\" (+ (not (any ?\"))) ?\")
|
||||||
(not (any blank ?\n
|
(not (any blank ?\n
|
||||||
digit
|
digit
|
||||||
?- ?\[ ?\]
|
?- ?\[ ?\]
|
||||||
?. ?, ?\; ?+ ?* ?/ ?^ ?? ?: ?& ?| ?! ?=
|
?. ?, ?\; ?+ ?* ?/ ?^ ?? ?: ?& ?| ?! ?=
|
||||||
?\< ?\> ?\{ ?\} ?\( ?\) ?@)))))
|
?\< ?\> ?\{ ?\} ?\( ?\) ?@)))))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp amount
|
(ledger-define-regexp amount
|
||||||
(rx (group
|
(rx (group
|
||||||
(and (? ?-)
|
(and (? ?-)
|
||||||
(and (+ digit)
|
(and (+ digit)
|
||||||
(*? (and (any ?. ?,) (+ digit))))
|
(*? (and (any ?. ?,) (+ digit))))
|
||||||
(? (and (any ?. ?,) (+ digit))))))
|
(? (and (any ?. ?,) (+ digit))))))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp commoditized-amount
|
(ledger-define-regexp commoditized-amount
|
||||||
(macroexpand
|
(macroexpand
|
||||||
`(rx (group
|
`(rx (group
|
||||||
(or (and (regexp ,ledger-commodity-regexp)
|
(or (and (regexp ,ledger-commodity-regexp)
|
||||||
(*? blank)
|
(*? blank)
|
||||||
(regexp ,ledger-amount-regexp))
|
(regexp ,ledger-amount-regexp))
|
||||||
(and (regexp ,ledger-amount-regexp)
|
(and (regexp ,ledger-amount-regexp)
|
||||||
(*? blank)
|
(*? blank)
|
||||||
(regexp ,ledger-commodity-regexp))))))
|
(regexp ,ledger-commodity-regexp))))))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp commodity-annotations
|
(ledger-define-regexp commodity-annotations
|
||||||
(macroexpand
|
(macroexpand
|
||||||
`(rx (* (+ blank)
|
`(rx (* (+ blank)
|
||||||
(or (and ?\{ (regexp ,ledger-commoditized-amount-regexp) ?\})
|
(or (and ?\{ (regexp ,ledger-commoditized-amount-regexp) ?\})
|
||||||
(and ?\[ (regexp ,ledger-date-regexp) ?\])
|
(and ?\[ (regexp ,ledger-date-regexp) ?\])
|
||||||
(and ?\( (not (any ?\))) ?\))))))
|
(and ?\( (not (any ?\))) ?\))))))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp cost
|
(ledger-define-regexp cost
|
||||||
(macroexpand
|
(macroexpand
|
||||||
`(rx (and (or "@" "@@") (+ blank)
|
`(rx (and (or "@" "@@") (+ blank)
|
||||||
(regexp ,ledger-commoditized-amount-regexp))))
|
(regexp ,ledger-commoditized-amount-regexp))))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp balance-assertion
|
(ledger-define-regexp balance-assertion
|
||||||
(macroexpand
|
(macroexpand
|
||||||
`(rx (and ?= (+ blank)
|
`(rx (and ?= (+ blank)
|
||||||
(regexp ,ledger-commoditized-amount-regexp))))
|
(regexp ,ledger-commoditized-amount-regexp))))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp full-amount
|
(ledger-define-regexp full-amount
|
||||||
(macroexpand `(rx (group (+? (not (any ?\;))))))
|
(macroexpand `(rx (group (+? (not (any ?\;))))))
|
||||||
"")
|
"")
|
||||||
|
|
||||||
(ledger-define-regexp post-line
|
(ledger-define-regexp post-line
|
||||||
(macroexpand
|
(macroexpand
|
||||||
`(rx (and line-start (+ blank)
|
`(rx (and line-start (+ blank)
|
||||||
(? (and (regexp ,ledger-state-regexp) (* blank)))
|
(? (and (regexp ,ledger-state-regexp) (* blank)))
|
||||||
(regexp ,ledger-full-account-regexp)
|
(regexp ,ledger-full-account-regexp)
|
||||||
(? (and (regexp ,ledger-long-space-regexp)
|
(? (and (regexp ,ledger-long-space-regexp)
|
||||||
(regexp ,ledger-full-amount-regexp)))
|
(regexp ,ledger-full-amount-regexp)))
|
||||||
(? (regexp ,ledger-end-note-regexp))
|
(? (regexp ,ledger-end-note-regexp))
|
||||||
line-end)))
|
line-end)))
|
||||||
""
|
""
|
||||||
state
|
state
|
||||||
(account-kind full-account kind)
|
(account-kind full-account kind)
|
||||||
|
|
|
||||||
|
|
@ -57,8 +57,7 @@
|
||||||
(let ((pos (point))
|
(let ((pos (point))
|
||||||
(inhibit-read-only t))
|
(inhibit-read-only t))
|
||||||
(erase-buffer)
|
(erase-buffer)
|
||||||
(ledger-register-render
|
(ledger-register-render buf (apply #'ledger-exec-read buf args))
|
||||||
buf (apply #'ledger-exec-read buf args))
|
|
||||||
(goto-char pos))
|
(goto-char pos))
|
||||||
(set-buffer-modified-p nil)
|
(set-buffer-modified-p nil)
|
||||||
(toggle-read-only t)
|
(toggle-read-only t)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue