diff options
author | Blendoit <blendoit@gmail.com> | 2020-08-01 15:24:03 -0700 |
---|---|---|
committer | Blendoit <blendoit@gmail.com> | 2020-08-01 15:24:03 -0700 |
commit | e47650852b8aa4da6d0b0cea3b5421955795cc64 (patch) | |
tree | 2535f7cc4fa4b5c25bbd46f9523da5944b76e201 /elpa/ledger-mode-20200530.1710/ledger-fonts.el | |
parent | 374ae3de24187512adddf01a56e5eb52c79db65f (diff) |
Definitely /not/ including elpa/, that would be chaos.
Diffstat (limited to 'elpa/ledger-mode-20200530.1710/ledger-fonts.el')
-rw-r--r-- | elpa/ledger-mode-20200530.1710/ledger-fonts.el | 684 |
1 files changed, 0 insertions, 684 deletions
diff --git a/elpa/ledger-mode-20200530.1710/ledger-fonts.el b/elpa/ledger-mode-20200530.1710/ledger-fonts.el deleted file mode 100644 index 93cea88..0000000 --- a/elpa/ledger-mode-20200530.1710/ledger-fonts.el +++ /dev/null @@ -1,684 +0,0 @@ -;;; ledger-fonts.el --- Helper code for use with the "ledger" command-line tool -*- lexical-binding: t; -*- - -;; Copyright (C) 2003-2016 John Wiegley (johnw AT gnu DOT org) - -;; This file is not part of GNU Emacs. - -;; This is free software; you can redistribute it and/or modify it under -;; the terms of the GNU General Public License as published by the Free -;; Software Foundation; either version 2, or (at your option) any later -;; version. -;; -;; This is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -;; for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -;; MA 02110-1301 USA. - - - -;;; Commentary: -;; All of the faces for ledger mode are defined here. - -;;; Code: - -(require 'ledger-navigate) -(require 'ledger-regex) -(require 'ledger-state) -(require 'ledger-fontify) - -(defgroup ledger-faces nil "Ledger mode highlighting" :group 'ledger) - -(defface ledger-font-auto-xact-face - `((t :inherit font-lock-negation-char-face)) - "Default face for automatic transactions" - :group 'ledger-faces) - -(defface ledger-font-periodic-xact-face - `((t :inherit font-lock-constant-face)) - "Default face for automatic transactions" - :group 'ledger-faces) - -(defface ledger-font-xact-cleared-face - `((t :inherit ledger-font-payee-cleared-face)) - "Default face for cleared transaction" - :group 'ledger-faces) - -(defface ledger-font-xact-pending-face - `((t :inherit ledger-font-pending-face)) - "Default face for pending transaction" - :group 'ledger-faces) - -(defface ledger-font-payee-uncleared-face - `((t :inherit error)) - "Default face for Ledger" - :group 'ledger-faces) - -(defface ledger-font-payee-cleared-face - `((t :inherit shadow)) - "Default face for cleared (*) payees" - :group 'ledger-faces) - -(defface ledger-font-payee-pending-face - `((t :inherit ledger-font-pending-face)) - "Default face for pending (!) payees" - :group 'ledger-faces) - -(defface ledger-font-xact-highlight-face - `((t - ,@(and (>= emacs-major-version 27) '(:extend t)) - :inherit ledger-occur-xact-face)) - "Default face for transaction under point" - :group 'ledger-faces) - -(defface ledger-font-pending-face - `((t :inherit warning)) - "Default face for pending (!) transactions" - :group 'ledger-faces) - -(defface ledger-font-other-face - `((t :inherit font-lock-type-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-directive-face - `((t :inherit font-lock-preprocessor-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-account-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-account-name-face - `((t :inherit font-lock-variable-name-face)) - "Face for account names in account and alias directives" - :group 'ledger-faces) - -(defface ledger-font-note-directive-face - `((t :inherit ledger-font-directive-face)) - "Face for note subdirectives" - :group 'ledger-faces) - -(defface ledger-font-note-text-face - `((t :inherit font-lock-doc-face)) - "Face for note subdirective text" - :group 'ledger-faces) - -(defface ledger-font-default-directive-face - `((t :inherit ledger-font-directive-face)) - "Face for default subdirectives" - :group 'ledger-faces) - -(defface ledger-font-price-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-price-date-face - `((t :inherit default)) - "Face for date and time in price directive" - :group 'ledger-faces) - -(defface ledger-font-price-symbol-face - `((t :inherit font-lock-constant-face)) - "Face for symbol in price directive" - :group 'ledger-faces) - -(defface ledger-font-price-face - `((t :inherit default)) - "Face for price in price directive" - :group 'ledger-faces) - -(defface ledger-font-apply-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-apply-account-face - `((t :inherit default)) - "Face for argument of apply account directive" - :group 'ledger-faces) - -(defface ledger-font-apply-tag-face - `((t :inherit default)) - "Face for argument of apply tag directive" - :group 'ledger-faces) - -(defface ledger-font-alias-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-alias-definition-face - `((t :inherit default)) - "Face for aliased account in alias directives" - :group 'ledger-faces) - -(defface ledger-font-assert-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-condition-face - `((t :inherit default)) - "Default face for check and assert conditions" - :group 'ledger-faces) - -(defface ledger-font-assert-condition-face - `((t :inherit ledger-font-condition-face)) - "Face for assert conditions" - :group 'ledger-faces) - -(defface ledger-font-bucket-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-bucket-account-face - `((t :inherit default)) - "Face for bucket directive argument" - :group 'ledger-faces) - -(defface ledger-font-C-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for C directive" - :group 'ledger-faces) - -(defface ledger-font-C-amount-face - `((t :inherit default)) - "Face for amounts in C directives" - :group 'ledger-faces) - -(defface ledger-font-capture-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-capture-account-face - `((t :inherit default)) - "Face for account name in capture directives" - :group 'ledger-faces) - -(defface ledger-font-capture-regex-face - `((t :inherit default)) - "Face for match regex in capture directives" - :group 'ledger-faces) - -(defface ledger-font-check-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-check-condition-face - `((t :inherit ledger-font-condition-face)) - "Face for check conditions" - :group 'ledger-faces) - -(defface ledger-font-commodity-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-commodity-name-face - `((t :inherit font-lock-constant-face)) - "Face for commodity name in commodity directives" - :group 'ledger-faces) - -(defface ledger-font-format-directive-face - `((t :inherit ledger-font-directive-face)) - "Face for format subdirective" - :group 'ledger-faces) - -(defface ledger-font-commodity-format-face - `((t :inherit default)) - "Face for format subdirective argument" - :group 'ledger-faces) - -(defface ledger-font-D-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for D directive" - :group 'ledger-faces) - -(defface ledger-font-define-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-define-name-face - `((t :inherit font-lock-variable-name-face)) - "Face for variable name in define directive" - :group 'ledger-faces) - -(defface ledger-font-define-body-face - `((t :inherit default)) - "Face for body in define directive" - :group 'ledger-faces) - -(defface ledger-font-end-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-expr-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-expr-expression-face - `((t :inherit default)) - "Face for expr and eval expressions" - :group 'ledger-faces) - -(defface ledger-font-fixed-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-fixed-commodity-face - `((t :inherit font-lock-constant-face)) - "Face for commodity name in fixed directive" - :group 'ledger-faces) - -(defface ledger-font-fixed-price-face - `((t :inherit default)) - "Face for price in fixed directive" - :group 'ledger-faces) - -(defface ledger-font-include-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-include-filename-face - `((t :inherit font-lock-string-face)) - "Face for file name in include directives" - :group 'ledger-faces) - -(defface ledger-font-N-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for N directive" - :group 'ledger-faces) - -(defface ledger-font-N-symbol-face - `((t :inherit default)) - "Face for symbol in N directives") - -(defface ledger-font-payee-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-payee-name-face - `((t :inherit font-lock-function-name-face)) - "Face for payee name in payee directive" - :group 'ledger-faces) - -(defface ledger-font-payee-regex-face - `((t :inherit font-lock-string-face)) - "Face for payee subdirective regex in account directive" - :group 'ledger-faces) - -(defface ledger-font-uuid-directive-face - `((t :inherit ledger-font-directive-face)) - "Face for uuid subdirectives" - :group 'ledger-faces) - -(defface ledger-font-uuid-face - `((t :inherit default)) - "Face for uuid in uuid subdirectives" - :group 'ledger-faces) - -(defface ledger-font-tag-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-tag-name-face - `((t :inherit font-lock-type-face)) - "Face for tag name in tag directive" - :group 'ledger-faces) - -(defface ledger-font-timeclock-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for timeclock I,i,O,o,b,h directives" - :group 'ledger-faces) - -(defface ledger-font-year-directive-face - `((t :inherit ledger-font-directive-face)) - "Default face for other transactions" - :group 'ledger-faces) - -(defface ledger-font-year-face - `((t :inherit default)) - "Font for year in year directives" - :group 'ledger-faces) - -(defface ledger-font-posting-account-face - `((t :inherit ledger-font-default-face)) - "Face for Ledger accounts" - :group 'ledger-faces) - -(defface ledger-font-posting-account-cleared-face - `((t :inherit ledger-font-payee-cleared-face)) - "Face for Ledger accounts" - :group 'ledger-faces) - -(defface ledger-font-posting-amount-cleared-face - `((t :inherit ledger-font-posting-account-cleared-face)) - "Face for Ledger accounts" - :group 'ledger-faces) - -(defface ledger-font-posting-account-pending-face - `((t :inherit ledger-font-pending-face)) - "Face for Ledger accounts" - :group 'ledger-faces) - -(defface ledger-font-posting-amount-pending-face - `((t :inherit ledger-font-posting-account-pending-face)) - "Face for Ledger accounts" - :group 'ledger-faces) - -(defface ledger-font-posting-amount-face - `((t :inherit font-lock-constant-face )) - "Face for Ledger amounts" - :group 'ledger-faces) - -(defface ledger-font-posting-date-face - `((t :inherit font-lock-keyword-face)) - "Face for Ledger dates" - :group 'ledger-faces) - -(defface ledger-occur-narrowed-face - `((t :inherit font-lock-comment-face :invisible t)) - "Default face for Ledger occur mode hidden transactions" - :group 'ledger-faces) - -(defface ledger-occur-xact-face - `((t :inherit highlight)) - "Default face for Ledger occur mode shown transactions" - :group 'ledger-faces) - -(defface ledger-font-comment-face - `((t :inherit font-lock-comment-face)) - "Face for Ledger comments" - :group 'ledger-faces) - -(defface ledger-font-reconciler-uncleared-face - `((t :inherit ledger-font-payee-uncleared-face)) - "Default face for uncleared transactions in the reconcile window" - :group 'ledger-faces) - -(defface ledger-font-reconciler-cleared-face - `((t :inherit ledger-font-payee-cleared-face)) - "Default face for cleared (*) transactions in the reconcile window" - :group 'ledger-faces) - -(defface ledger-font-reconciler-pending-face - `((t :inherit ledger-font-pending-face)) - "Default face for pending (!) transactions in the reconcile window" - :group 'ledger-faces) - -(defface ledger-font-report-clickable-face - `((t)) - "Face applied to clickable entries in the report window" - :group 'ledger-faces) - -(defface ledger-font-code-face - `((t :inherit default)) - "Face for Ledger codes" - :group 'ledger-faces) - -(defun ledger-font-face-by-state (num faces) - "Choose one of three faces depending on transaction state. -NUM specifies a match group containing the state. -FACES has the form (CLEARED PENDING OTHER). -Return CLEARED if that group specifies a cleared transaction, -PENDING if pending, and OTHER if none of the above." - (let ((state (save-match-data (ledger-state-from-string (match-string num))))) - (cond ((eq state 'cleared) (nth 0 faces)) - ((eq state 'pending) (nth 1 faces)) - (t (nth 2 faces))))) - -(defun ledger-font-face-by-timeclock-state (num faces) - "Choose one of two faces depending on a timeclock directive character. -NUM specifies a match group containing the character. -FACES has the form (CLEARED UNCLEARED). -Return CLEARED if the character specifies a cleared transaction, -UNCLEARED otherwise." - (if (member (match-string num) '("I" "O")) - (nth 0 faces) - (nth 1 faces))) - -(defun ledger-font-subdirectives (subdirectives) - "Construct anchored highlighters for subdirectives. - -Each element of SUBDIRECTIVES should have the form (MATCHER -SUBEXP-HIGHLIGHTERS…). The result will be a list of elements of -the form (MATCHER PRE-FORM POST-FORM SUBEXP-HIGHLIGHTERS) with -PRE-FORM and POST-FORM set to appropriate values. - -See `font-lock-keywords' for the full description." - - (mapcar (lambda (item) - `(,(car item) - (save-excursion - (save-match-data - (ledger-navigate-end-of-xact)) - (point)) - (goto-char (match-end 0)) - ,@(cdr item))) - subdirectives)) - -(defvar ledger-font-lock-keywords - `(("^[;#%|*].*$" . 'ledger-font-comment-face) - ("^\\(account\\)\\(?:[[:blank:]]\\(.*\\)\\)?$" - (1 'ledger-font-account-directive-face) - (2 'ledger-font-account-name-face nil :lax) - ,@(ledger-font-subdirectives - '(("^[ \t]+\\(;.*\\)" (1 'ledger-font-comment-face)) - ("^[ \t]+\\(note\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-note-directive-face) - (2 'ledger-font-note-text-face nil :lax)) - ("^[ \t]+\\(alias\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-alias-directive-face) - (2 'ledger-font-account-name-face nil :lax)) - ("^[ \t]+\\(payee\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-payee-directive-face) - (2 'ledger-font-payee-regex-face nil :lax)) - ("^[ \t]+\\(check\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-check-directive-face) - (2 'ledger-font-check-condition-face nil :lax)) - ("^[ \t]+\\(assert\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-assert-directive-face) - (2 'ledger-font-assert-condition-face nil :lax)) - ("^[ \t]+\\(eval\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-expr-directive-face) - (2 'ledger-font-expr-expression-face nil :lax)) - ("^[ \t]+\\(default\\)\\>.*" - (1 'ledger-font-default-directive-face))))) - ("^\\(alias\\)\\(?:[[:blank:]]+\\([^=\n]*\\)\\(?:=\\(.*\\)\\)?\\)?$" - (1 'ledger-font-alias-directive-face) - (2 'ledger-font-account-name-face nil :lax) - (3 'ledger-font-alias-definition-face nil :lax)) - (,(concat "^\\(apply\\)\\(?:[[:blank:]]+" - "\\(?:\\(account\\)\\(?:[[:blank:]]+\\(.*\\)\\)?" - "\\|\\(tag\\)\\(?:[[:blank:]]+\\(.*\\)\\)?\\)\\)?$") - (1 'ledger-font-apply-directive-face) - (2 'ledger-font-apply-directive-face nil :lax) - (3 'ledger-font-apply-account-face nil :lax) - (4 'ledger-font-apply-directive-face nil :lax) - (5 'ledger-font-apply-tag-face nil :lax)) - ("^\\(assert\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-assert-directive-face) - (2 'ledger-font-assert-condition-face nil :lax)) - ("^\\(bucket\\|A\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-bucket-directive-face) - (2 'ledger-font-bucket-account-face nil :lax)) - (,(concat "^\\(C\\)" - "\\(?:[[:blank:]]+\\([^=\n]*?\\)[[:blank:]]*" - "\\(?:=[[:blank:]]*\\(.*\\)\\)?\\)?$") - (1 'ledger-font-C-directive-face) - (2 'ledger-font-C-amount-face nil :lax) - (3 'ledger-font-C-amount-face nil :lax)) - (,(concat "^\\(capture\\)" - "\\(?:[[:blank:]]+\\(.*?\\)" - "\\(?:\\(?:\t\\|[ \t]\\{2,\\}\\)\\(.*\\)\\)?\\)?$") - (1 'ledger-font-capture-directive-face) - (2 'ledger-font-capture-account-face nil :lax) - (3 'ledger-font-capture-regex-face nil :lax)) - ("^\\(check\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-check-directive-face) - (2 'ledger-font-check-condition-face nil :lax)) - (,(concat "^\\(?:comment\\|test\\)\\>" - "[^\0]*?\n" - "end[[:blank:]]+\\(?:comment\\|test\\)\\>.*\n") - . 'ledger-font-comment-face) - ("^\\(commodity\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-commodity-directive-face) - (2 'ledger-font-commodity-name-face nil :lax) - ,@(ledger-font-subdirectives - '(("^[ \t]+\\(;.*\\)" (1 'ledger-font-comment-face)) - ("^[ \t]+\\(note\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-note-directive-face) - (2 'ledger-font-note-text-face nil :lax)) - ("^[ \t]+\\(format\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-format-directive-face) - (2 'ledger-font-commodity-format-face nil :lax)) - ("^[ \t]+\\(nomarket\\)\\>.*" - (1 'ledger-font-N-directive-face)) - ("^[ \t]+\\(default\\)\\>.*" - (1 'ledger-font-default-directive-face))))) - ("^\\(D\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-D-directive-face) - (2 'ledger-font-commodity-format-face nil :lax)) - (,(concat "^\\(define\\|def\\)" - "\\(?:[[:blank:]]+\\([^=\n]*?\\)[[:blank:]]*" - "\\(?:=[[:blank:]]*\\(.*\\)\\)?\\)?$") - (1 'ledger-font-define-directive-face) - (2 'ledger-font-define-name-face nil :lax) - (3 'ledger-font-define-body-face nil :lax)) - (,(concat "^\\(end\\)" - "\\(?:[[:blank:]]+\\(apply\\)" - "\\(?:[[:blank:]]+\\(account\\|tag\\)\\>.*\\)?\\)?$") - (1 'ledger-font-end-directive-face) - (2 'ledger-font-end-directive-face nil :lax) - (3 'ledger-font-end-directive-face nil :lax)) - ("^\\(endfixed\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-end-directive-face) - (2 'ledger-font-fixed-commodity-face nil :lax)) - ("^\\(expr\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-expr-directive-face) - (2 'ledger-font-expr-expression-face nil :lax)) - ("^\\(fixed\\)\\(?:[[:blank:]]+\\([^[:blank:]\n]+\\)\\(?:[[:blank:]]+\\(.*\\)\\)?\\)?$" - (1 'ledger-font-fixed-directive-face) - (2 'ledger-font-fixed-commodity-face nil :lax) - (3 'ledger-font-fixed-price-face nil :lax)) - ("^\\(include\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-include-directive-face) - (2 'ledger-font-include-filename-face nil :lax)) - ("^\\(N\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-N-directive-face) - (2 'ledger-font-N-symbol-face nil :lax)) - ("^\\(payee\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-payee-directive-face) - (2 'ledger-font-payee-name-face nil :lax) - ,@(ledger-font-subdirectives - '(("^[ \t]+\\(;.*\\)" (1 'ledger-font-comment-face)) - ("^[ \t]+\\(alias\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-alias-directive-face) - (2 'ledger-font-payee-regex-face nil :lax)) - ("^[ \t]+\\(uuid\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-uuid-directive-face) - (2 'ledger-font-uuid-face nil :lax))))) - (,(concat "^\\(P\\)" - "\\(?:[[:blank:]]+\\([^[:blank:]\n]+" - "\\(?:[[:blank:]]+[[:digit:]][^[:blank:]\n]*\\)?\\)" - "\\(?:[[:blank:]]+\\([^[:blank:]\n]+\\)" - "\\(?:[[:blank:]]+\\(.*\\)\\)?\\)?\\)?$") - (1 'ledger-font-price-directive-face) - (2 'ledger-font-price-date-face nil :lax) - (3 'ledger-font-price-symbol-face nil :lax) - (4 'ledger-font-price-face nil :lax)) - ("^\\(tag\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-tag-directive-face) - (2 'ledger-font-tag-name-face nil :lax) - ,@(ledger-font-subdirectives - '(("^[ \t]+\\(;.*\\)" (1 'ledger-font-comment-face)) - ("^[ \t]+\\(check\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-check-directive-face) - (2 'ledger-font-check-condition-face nil :lax)) - ("^[ \t]+\\(assert\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-assert-directive-face) - (2 'ledger-font-assert-condition-face nil :lax))))) - (,(concat "^\\([IiOo]\\)" - "\\(?:[[:blank:]]+\\([^[:blank:]\n]+" - "\\(?:[[:blank:]]+[^[:blank:]\n]+\\)?\\)" - "\\(?:[[:blank:]]+\\(.*?\\)" - "\\(?:\t\\|[ \t]\\{2,\\}\\(.*?\\)" - "\\(?:\t\\|[ \t]\\{2,\\}\\(;.*\\)\\)?\\)?\\)?\\)?$") - (1 'ledger-font-timeclock-directive-face) - (2 'ledger-font-posting-date-face nil :lax) - (3 (ledger-font-face-by-timeclock-state 1 '(ledger-font-posting-account-cleared-face - ledger-font-posting-account-face)) nil :lax) - (4 (ledger-font-face-by-timeclock-state 1 '(ledger-font-payee-cleared-face - ledger-font-payee-uncleared-face)) nil :lax) - (5 'ledger-font-comment-face nil :lax)) - ("^\\([bh]\\)\\>.*$" (1 'ledger-font-timeclock-directive-face)) - ("^\\(year\\|Y\\)\\(?:[[:blank:]]+\\(.*\\)\\)?$" - (1 'ledger-font-year-directive-face) - (2 'ledger-font-year-face nil :lax)) - - (,(lambda (limit) - (when ledger-fontify-xact-state-overrides - (re-search-forward - (concat "^\\(?:\\([=~]\\)[ \t].*\\|" ; auto/periodic, subexpr 1 - "[[:digit:]][^ \t\n]*" ; date - "[ \t]+\\([*!]\\)" ; mark, subexp 2 - ".*\\)" ; rest of header - "\\(?:\n[ \t]+.*\\)*" ; postings - ) - limit t))) - (0 (cond ((equal "=" (match-string 1)) 'ledger-font-auto-xact-face) - ((equal "~" (match-string 1)) 'ledger-font-periodic-xact-face) - (t (ledger-font-face-by-state 2 '(ledger-font-xact-cleared-face - ledger-font-xact-pending-face)))))) - (,(concat "^\\(?:\\(\\([=~]\\).*\\)\\|" ; auto/periodic, subexp 1, 2 - "\\([[:digit:]][^ \t\n]*\\)" ; date, subexp 3 - ledger-xact-after-date-regex "\\)") ; mark 4, code 5, desc 6, comment 7 - (1 (cond ((equal "=" (match-string 2)) 'ledger-font-auto-xact-face) - ((equal "~" (match-string 2)) 'ledger-font-periodic-xact-face) - (t 'ledger-font-default-face)) - nil :lax) - (3 'ledger-font-posting-date-face nil :lax) - (5 'ledger-font-code-face nil :lax) - (6 (ledger-font-face-by-state 4 '(ledger-font-payee-cleared-face - ledger-font-payee-pending-face - ledger-font-payee-uncleared-face)) - nil :lax) - (7 'ledger-font-comment-face nil :lax) - ,@(ledger-font-subdirectives - `(("^[ \t]+\\(;.*\\)" - (1 'ledger-font-comment-face)) - (,ledger-posting-regex ; state and account 1, state 2, account 3, amount 4, comment 5 - (1 (ledger-font-face-by-state 2 '(ledger-font-posting-account-cleared-face - ledger-font-posting-account-pending-face - ledger-font-posting-account-face)) - nil :lax) - (4 (ledger-font-face-by-state 2 '(ledger-font-posting-amount-cleared-face - ledger-font-posting-amount-pending-face - ledger-font-posting-amount-face)) - nil :lax) - (5 'ledger-font-comment-face nil :lax)))))) - "Expressions to highlight in Ledger mode.") - - - -(provide 'ledger-fonts) - -;;; ledger-fonts.el ends here |