Moving to Doom Emacs!

This commit is contained in:
Derek Taylor
2019-12-16 20:21:19 -06:00
parent d9f2f456f1
commit d4b4c33550
683 changed files with 51877 additions and 100 deletions

View File

@@ -0,0 +1,56 @@
#+TITLE: lang/ledger
#+DATE: October 13, 2019
#+SINCE: v2.0.4
#+STARTUP: inlineimages
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#hacks][Hacks]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
* Description
This module adds support for [[https://www.ledger-cli.org/][ledger]] files. Ledger is a command line double-entry
accounting system that works with simple text files holding transactions in the
following format:
#+BEGIN_SRC ledger
2015/10/12 Exxon
Expenses:Auto:Gas $10.00
Liabilities:MasterCard $-10.00
#+END_SRC
This modules enables the following features:
+ Syntax and indentation support for ledger files
+ Add, edit, and delete transactions
+ Generate reports
+ Schedule transactions
+ Sort transactions
+ Display statistics about transactions
+ Display balance up to a point
** Module Flags
This module provides no flags.
** Plugins
+ [[https://github.com/purcell/flycheck-ledger][flycheck-ledger]]
+ [[https://github.com/atheriel/evil-ledger][evil-ledger]]
** Hacks
This module sets ~ledger-clear-whole-transactions~ to ~t~ (default value is
~nil~). This results in ~ledger-toggle-current~ toggling the clear status of the
whole transaction instead of toggling just the current posting.
* Prerequisites
In order for ~flycheck-ledger~ to work and to be able to generate reports you
will need to install [[https://www.ledger-cli.org/][ledger]].
* TODO Features
An in-depth list of features, how to use them, and their dependencies.
* Configuration
Please refer to ~ledger-mode~'s documentation for information on how to
configure it. You can do so within emacs with =C-h i=

View File

@@ -0,0 +1,58 @@
;;; lang/ledger/config.el -*- lexical-binding: t; -*-
;;;###package ledger-mode
(setq ledger-clear-whole-transactions 1)
(defadvice! +ledger--check-version-a (orig-fn)
"Fail gracefully if ledger binary isn't available."
:around #'ledger-check-version
(if (executable-find ledger-binary-path)
(funcall orig-fn)
(message "Couldn't find '%s' executable" ledger-binary-path)))
;; Restore leader key in ledger reports
(map! :after ledger-mode
:map ledger-report-mode-map
"C-c C-c" #'ledger-report-edit-report
"C-c C-r" #'ledger-report-redo
"C-c C-s" #'ledger-report-save
:map ledger-reconcile-mode-map
[tab] #'ledger-reconcile-toggle)
(use-package! flycheck-ledger
:when (featurep! :tools flycheck)
:after ledger-mode)
(use-package! evil-ledger
:when (featurep! :editor evil +everywhere)
:hook (ledger-mode . evil-ledger-mode)
:config
(set-evil-initial-state! 'ledger-report-mode 'normal)
(map! :map ledger-report-mode-map
:n "q" #'ledger-report-quit
:n "RET" #'ledger-report-edit-report
:n "gd" #'ledger-report-visit-source
:n "gr" #'ledger-report-redo
:map ledger-mode-map
:m "]]" #'ledger-navigate-next-xact-or-directive
:m "[[" #'ledger-navigate-prev-xact-or-directive
:localleader
:map ledger-mode-map
"a" #'ledger-add-transaction
"t" #'ledger-toggle-current
"d" #'ledger-delete-current-transaction
"r" #'ledger-report
"R" #'ledger-reconcile
"s" #'ledger-sort-region
"S" #'ledger-schedule-upcoming
(:prefix "g"
"s" #'ledger-display-ledger-stats
"b" #'ledger-display-balance-at-point))
(defadvice! +ledger--fix-key-help-a (&rest _)
"Fix inaccurate keybind message."
:after #'ledger-report
(message "q to quit; gr to redo; RET to edit; C-c C-s to save")))

View File

@@ -0,0 +1,10 @@
;; -*- no-byte-compile: t; -*-
;;; lang/ledger/packages.el
(package! ledger-mode)
(when (featurep! :editor evil)
(package! evil-ledger))
(when (featurep! :tools flycheck)
(package! flycheck-ledger))