Added some missing autoloads for the new ledger-mode

This commit is contained in:
John Wiegley 2010-05-02 23:50:17 -04:00
parent 056994497e
commit 7f5c1c81a1
5 changed files with 90 additions and 80 deletions

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)