ledger-mode now automatically loads and parses the init file.

Currently only pays attention to decimal-comma
This commit is contained in:
Craig Earls 2013-02-23 17:53:55 -07:00
parent 47ae01357b
commit 4cb2779464
4 changed files with 27 additions and 18 deletions

View file

@ -36,7 +36,6 @@
This only has effect interfacing to calc mode in edit amount" This only has effect interfacing to calc mode in edit amount"
:type 'boolean :type 'boolean
:group 'ledger) :group 'ledger)
(defun ledger-split-commodity-string (str) (defun ledger-split-commodity-string (str)
"Split a commoditized amount into two parts" "Split a commoditized amount into two parts"
(let (val (let (val
@ -85,7 +84,7 @@ DIRECTION can be :to-user or :from-user. All math calculations
are done with decimal-period, some users may prefer decimal-comma are done with decimal-period, some users may prefer decimal-comma
which must be translated both directions." which must be translated both directions."
(let ((val number-string)) (let ((val number-string))
(if ledger-use-decimal-comma (if (assoc "decimal-comma" ledger-environment-alist)
(cond ((eq direction :from-user) (cond ((eq direction :from-user)
;; change string to decimal-period ;; change string to decimal-period
(while (string-match "," val) (while (string-match "," val)

View file

@ -22,14 +22,17 @@
;;; Commentary: ;;; Commentary:
;; Determine the ledger environment ;; Determine the ledger environment
(defvar init-file-name "~/.ledgerrc") (defcustom init-file-name "~/.ledgerrc"
"Location of the ledger initialization file. nil if you don't have one"
:group 'ledger)
(defvar ledger-environment-alist nil) (defvar ledger-environment-alist nil)
(defun ledger-init-parse-initialization (file) (defun ledger-init-parse-initialization (file)
(with-current-buffer file (with-current-buffer file
(setq ledger-environment-alist nil) (setq ledger-environment-alist nil)
(goto-char (point-min)) (goto-char (point-min))
(while (re-search-forward "^--.+?\\($\\|[ ]\\)" nil t ) (while (re-search-forward "^--.+?\\($\\|[ ]\\)" nil t )
(let ((matchb (match-beginning 0)) ;; save the match data, string-match stomp on it (let ((matchb (match-beginning 0)) ;; save the match data, string-match stomp on it
(matche (match-end 0))) (matche (match-end 0)))
(end-of-line) (end-of-line)
@ -43,17 +46,21 @@
(if (> (length value) 0) (if (> (length value) 0)
value value
t)))))))) t))))))))
ledger-environment-alist)) ledger-environment-alist))
(defun ledger-init-load-init-file () (defun ledger-init-load-init-file ()
(interactive) (interactive)
(save-excursion (save-excursion
(if (and (file-exists-p init-file-name) (if (get-buffer (file-name-nondirectory init-file-name))
(ledger-init-parse-initialization (file-name-nondirectory init-file-name))
(if (and
init-file-name
(file-exists-p init-file-name)
(file-readable-p init-file-name)) (file-readable-p init-file-name))
(progn (let
(find-file init-file-name) (find-file-noselect init-file-name)
(ledger-init-parse-initialization (file-name-nondirectory init-file-name)) (ledger-init-parse-initialization (file-name-nondirectory init-file-name))
(kill-buffer (file-name-nondirectory init-file-name)))))) (kill-buffer (file-name-nondirectory init-file-name)))))))

View file

@ -76,6 +76,8 @@
(add-hook 'before-revert-hook 'ledger-remove-overlays nil t) (add-hook 'before-revert-hook 'ledger-remove-overlays nil t)
(make-variable-buffer-local 'highlight-overlay) (make-variable-buffer-local 'highlight-overlay)
(ledger-init-load-init-file)
(let ((map (current-local-map))) (let ((map (current-local-map)))
(define-key map [(control ?c) (control ?a)] 'ledger-add-transaction) (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 ?b)] 'ledger-post-edit-amount)

View file

@ -32,22 +32,23 @@
;;; Commentary: ;;; Commentary:
;; Load up the ledger mode ;; Load up the ledger mode
(require 'esh-arg)
(require 'ldg-commodities)
(require 'ldg-complete) (require 'ldg-complete)
(require 'ldg-exec) (require 'ldg-exec)
(require 'ldg-fonts)
(require 'ldg-init)
(require 'ldg-mode) (require 'ldg-mode)
(require 'ldg-occur)
(require 'ldg-post) (require 'ldg-post)
(require 'ldg-reconcile) (require 'ldg-reconcile)
(require 'ldg-register) (require 'ldg-register)
(require 'ldg-report) (require 'ldg-report)
(require 'ldg-sort)
(require 'ldg-state) (require 'ldg-state)
(require 'ldg-test) (require 'ldg-test)
(require 'ldg-texi) (require 'ldg-texi)
(require 'ldg-xact) (require 'ldg-xact)
(require 'ldg-sort)
(require 'ldg-fonts)
(require 'ldg-occur)
(require 'ldg-commodities)
(require 'esh-arg)
;;; Code: ;;; Code: