summaryrefslogtreecommitdiff
path: root/elpa/ledger-mode-20200530.1710/ledger-fontify.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/ledger-mode-20200530.1710/ledger-fontify.el')
-rw-r--r--elpa/ledger-mode-20200530.1710/ledger-fontify.el58
1 files changed, 58 insertions, 0 deletions
diff --git a/elpa/ledger-mode-20200530.1710/ledger-fontify.el b/elpa/ledger-mode-20200530.1710/ledger-fontify.el
new file mode 100644
index 0000000..0e53215
--- /dev/null
+++ b/elpa/ledger-mode-20200530.1710/ledger-fontify.el
@@ -0,0 +1,58 @@
+;;; ledger-fontify.el --- Provide custom fontification for ledger-mode -*- lexical-binding: t; -*-
+
+
+;; Copyright (C) 2014 Craig P. Earls (enderw88 at gmail dot com)
+
+;; 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:
+;; Font-lock-mode doesn't handle multiline syntax very well. This
+;; code provides font lock that is sensitive to overall transaction
+;; states
+
+
+;;; Code:
+
+(require 'ledger-navigate)
+(require 'ledger-regex)
+(require 'ledger-state)
+
+;; These are dynamically bound, see `font-lock-extend-region-functions'.
+(defvar font-lock-beg)
+(defvar font-lock-end)
+
+(defcustom ledger-fontify-xact-state-overrides nil
+ "If t the highlight entire xact with state."
+ :type 'boolean
+ :group 'ledger)
+
+(defun ledger-fontify-extend-region ()
+ "Extend fontification region to include whole transactions or directives."
+ (save-match-data
+ (let* ((new-beg (min font-lock-beg (car (ledger-navigate-find-element-extents font-lock-beg))))
+ (new-end (max font-lock-end (cadr (ledger-navigate-find-element-extents font-lock-end))))
+ (changed (or (/= new-beg font-lock-beg)
+ (/= new-end font-lock-end))))
+ (setq font-lock-beg new-beg)
+ (setq font-lock-end new-end)
+ changed)))
+
+
+(provide 'ledger-fontify)
+
+;;; ledger-fontify.el ends here
Copyright 2019--2024 Marius PETER