jit-lock is now calling ledger-fontify-buffer-part, but font-lock-fontify-region is still being called and fighting with it.

This commit is contained in:
Craig Earls 2014-09-05 21:45:36 -07:00
parent e2c07931ed
commit 991d162fb0
3 changed files with 88 additions and 54 deletions

View file

@ -63,7 +63,7 @@
(if (string= (format-mode-line 'mode-name) "Ledger")
(add-hook 'after-change-functions 'ledger-fontify-buffer-part)))
(defun ledger-fontify-buffer-part (beg end len)
(defun ledger-fontify-buffer-part (beg end)
(save-excursion
;; (message (concat "ledger-fontify-buffer-part: "
;; (int-to-string beg) " "

View file

@ -228,48 +228,48 @@
:group 'ledger-faces)
;; (defvar ledger-font-lock-keywords
;; `( ;; (,ledger-other-entries-regex 1
;; ;; ledger-font-other-face)
;; (,ledger-comment-regex 0
;; 'ledger-font-comment-face)
;; (,ledger-amount-regex 0
;; 'ledger-font-posting-amount-face)
;; (,ledger-multiline-comment-regex 0 'ledger-font-comment-face)
;; (,ledger-payee-pending-regex 2
;; 'ledger-font-payee-pending-face) ; Works
;; (,ledger-payee-cleared-regex 2
;; 'ledger-font-payee-cleared-face) ; Works
;; (,ledger-payee-uncleared-regex 2
;; 'ledger-font-payee-uncleared-face) ; Works
;; (,ledger-account-cleared-regex 2
;; 'ledger-font-posting-account-cleared-face) ; Works
;; (,ledger-account-pending-regex 2
;; 'ledger-font-posting-account-pending-face) ; Works
;; (,ledger-account-any-status-regex 2
;; 'ledger-font-posting-account-face) ; Works
;; (,ledger-other-entries-regex 1
;; 'ledger-font-other-face))
;; "Expressions to highlight in Ledger mode.")
;; (defvar ledger-font-lock-keywords
;; `( ;; (,ledger-other-entries-regex 1
;; ;; ledger-font-other-face)
;; (,ledger-comment-regex 0
;; 'ledger-font-comment-face)
;; (,ledger-amount-regex 0
;; 'ledger-font-posting-amount-face)
;; (,ledger-multiline-comment-regex 0 'ledger-font-comment-face)
;; (,ledger-payee-pending-regex 2
;; 'ledger-font-payee-pending-face) ; Works
;; (,ledger-payee-cleared-regex 2
;; 'ledger-font-payee-cleared-face) ; Works
;; (,ledger-payee-uncleared-regex 2
;; 'ledger-font-payee-uncleared-face) ; Works
;; (,ledger-account-cleared-regex 2
;; 'ledger-font-posting-account-cleared-face) ; Works
;; (,ledger-account-pending-regex 2
;; 'ledger-font-posting-account-pending-face) ; Works
;; (,ledger-account-any-status-regex 2
;; 'ledger-font-posting-account-face) ; Works
;; (,ledger-other-entries-regex 1
;; 'ledger-font-other-face))
;; "Expressions to highlight in Ledger mode.")
(defvar ledger-font-lock-keywords
`(("account" . ledger-font-account-directive-face)
("apply" . ledger-font-apply-directive-face)
("alias" . ledger-font-alias-directive-face)
("assert" . ledger-font-assert-directive-face)
("bucket" . ledger-font-bucket-directive-face)
("capture" . ledger-font-capture-directive-face)
("check" . ledger-font-check-directive-face)
("commodity" . ledger-font-commodity-directive-face)
("define" . ledger-font-define-directive-face)
("end" . ledger-font-end-directive-face)
("expr" . ledger-font-expr-directive-face)
("fixed" . ledger-font-fixed-directive-face)
("include" . ledger-font-include-directive-face)
("payee" . ledger-font-payee-directive-face)
("tag" . ledger-font-tag-directive-face)
("year" . ledger-font-year-directive-face))
"Expressions to highlight in Ledger mode.")
(defvar ledger-font-lock-keywords
`(("account" . ledger-font-account-directive-face)
("apply" . ledger-font-apply-directive-face)
("alias" . ledger-font-alias-directive-face)
("assert" . ledger-font-assert-directive-face)
("bucket" . ledger-font-bucket-directive-face)
("capture" . ledger-font-capture-directive-face)
("check" . ledger-font-check-directive-face)
("commodity" . ledger-font-commodity-directive-face)
("define" . ledger-font-define-directive-face)
("end" . ledger-font-end-directive-face)
("expr" . ledger-font-expr-directive-face)
("fixed" . ledger-font-fixed-directive-face)
("include" . ledger-font-include-directive-face)
("payee" . ledger-font-payee-directive-face)
("tag" . ledger-font-tag-directive-face)
("year" . ledger-font-year-directive-face))
"Expressions to highlight in Ledger mode.")

View file

@ -307,16 +307,58 @@ With a prefix argument, remove the effective date. "
["Kill Report" ledger-report-kill ledger-works]))
;;;###autoload
;; (define-derived-mode ledger-mode text-mode "Ledger"
;; "A mode for editing ledger data files."
;; (ledger-check-version)
;; (ledger-schedule-check-available)
;; ;;(ledger-post-setup)
;; (setq-local pcomplete-parse-arguments-function 'ledger-parse-arguments)
;; (setq-local pcomplete-command-completion-function 'ledger-complete-at-point)
;; (add-hook 'completion-at-point-functions 'pcomplete-completions-at-point nil t)
;; (add-hook 'after-save-hook 'ledger-report-redo)
;; (add-hook 'post-command-hook 'ledger-highlight-xact-under-point nil t)
;; (add-hook 'before-revert-hook 'ledger-occur-remove-all-overlays nil t)
;; (ledger-init-load-init-file)
;; ;; (setq font-lock-defaults
;; ;; `(,ledger-font-lock-keywords t nil nil nil
;; ;; (font-lock-fontify-buffer-function . ledger-fontify-whole-buffer)
;; ;; (font-lock-fontify-region-function . ledger-fontify-buffer-part)))
;; ;; (setq-local font-lock-defaults `(,ledger-font-lock-keywords nil t nil nil
;; ;; (font-lock-fontify-buffer-function . ledger-fontify-whole-buffer)))
;; (setq-local indent-region-function 'ledger-post-align-postings))
(define-derived-mode ledger-mode text-mode "Ledger"
"A mode for editing ledger data files."
(ledger-check-version)
(ledger-schedule-check-available)
;;(ledger-post-setup)
(setq-local pcomplete-parse-arguments-function 'ledger-parse-arguments)
(setq-local pcomplete-command-completion-function 'ledger-complete-at-point)
(add-hook 'completion-at-point-functions 'pcomplete-completions-at-point nil t)
;; (set-syntax-table ledger-mode-syntax-table)
;; (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)
(setq-local font-lock-defaults
'(ledger-font-lock-keywords t t)))
;; (setq font-lock-extend-region-functions
;; (list #'font-lock-extend-region-wholelines))
;; (setq font-lock-multiline nil)
(jit-lock-register 'ledger-fontify-buffer-part)
(jit-lock-unregister 'font-lock-fontify-region)
(setq-local pcomplete-parse-arguments-function 'ledger-parse-arguments)
(setq-local pcomplete-command-completion-function 'ledger-complete-at-point)
(add-hook 'completion-at-point-functions 'pcomplete-completions-at-point nil t)
(add-hook 'after-save-hook 'ledger-report-redo)
(add-hook 'post-command-hook 'ledger-highlight-xact-under-point nil t)
@ -324,16 +366,8 @@ With a prefix argument, remove the effective date. "
(ledger-init-load-init-file)
;; (setq font-lock-defaults
;; `(,ledger-font-lock-keywords t nil nil nil
;; (font-lock-fontify-buffer-function . ledger-fontify-whole-buffer)
;; (font-lock-fontify-region-function . ledger-fontify-buffer-part)))
(setq-local indent-region-function 'ledger-post-align-postings))
;; (setq-local font-lock-defaults `(,ledger-font-lock-keywords nil t nil nil
;; (font-lock-fontify-buffer-function . ledger-fontify-whole-buffer)))
(setq-local indent-region-function 'ledger-post-align-postings)
(ledger-fontify-activate))
(defun ledger-set-year (newyear)