ledger-mode now automatically loads and parses the init file.
Currently only pays attention to decimal-comma
This commit is contained in:
parent
47ae01357b
commit
4cb2779464
4 changed files with 27 additions and 18 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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)))))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue