Commit graph

3750 commits

Author SHA1 Message Date
Johann Klähn
1be3a79385 vim. check for most common case first (parse_body) 2010-09-08 23:29:36 +02:00
Johann Klähn
6c0ccd5ffd vim. add LedgerToggleTransactionState()
By using
  call LedgerToggleTransactionState(line('.'), ' *?')
the state of the transaction will toggle through:
  no state -> * -> ? -> no state -> …
beginning at what ever state it currently has.
Adjust to your liking.

Thanks to Chad Voegele for the suggestion.
2010-09-08 23:24:39 +02:00
Johann Klähn
58fcb0f30f vim. make sure cursor/line is on a transaction
Thanks to Chad Voegele for reporting and fixing this in
the first place.
2010-09-08 22:31:42 +02:00
Johann Klähn
019a60e6d1 vim. update s:get_columns() 2010-09-08 22:18:28 +02:00
Johann Klähn
e4060eb421 vim. get transactions in a range of lines 2010-09-08 17:34:38 +02:00
Johann Klähn
eea6f33a2e vim. fix return type of s:transaction.from_lnum() 2010-09-08 17:34:05 +02:00
Johann Klähn
f7f8432c52 vim. add function to parse postings 2010-09-08 14:48:28 +02:00
Johann Klähn
ae3a8b6e11 vim. add case of automatic transactions 2010-09-08 14:44:34 +02:00
Johann Klähn
84fea7f136 vim. reimplement function to change state
Note: You now have to provide the line number:
  call LedgerSetTransactionState(line('.', '*')
2010-09-08 10:23:06 +02:00
Johann Klähn
f8c804ac79 vim. allow use of 0 as timestamp
To remove the effective date you would now call the function like this:
  call LedgerSetDate(line('.'), 'effective', -1)
2010-09-08 10:10:09 +02:00
Johann Klähn
66b39c46d1 vim. add function to modify actual/effective date
This allows you to set the effective date in a convenient way.
Maybe I will add date selection using calendar.vim by Yasuhiro
Matsumoto. Until then, you can map this to use today's date:
  call LedgerSetDate(line('.'), 'effective')
2010-09-08 10:01:44 +02:00
Johann Klähn
cf40d1c9d7 vim. introduce basic transaction 'class'/concept 2010-09-08 10:00:17 +02:00
Johann Klähn
2dff4dea3f vim. add function to change item state ~ reconcile
To try this, map or call the following function:
  LedgerSetTransactionState('') – removes state
  LedgerSetTransactionState('*') – sets 'checked' state
  …

The logic used to distinguish the different parts
of the first line of a transaction is rather basic
but proved to work so far.
2010-09-07 21:05:08 +02:00
Johann Klähn
04f564f01c vim. use ledger print as 'formatprg'
You can now try to select some lines using V (visual mode)
and have them automatically formatted using gq
2010-09-07 17:59:26 +02:00
John Wiegley
ab24901b9d Made -> have higher precedence than comma 2010-09-06 01:01:20 -04:00
John Wiegley
84780270f9 Added initial support for lambda functions 2010-09-06 00:56:00 -04:00
John Wiegley
e162455ebb Minor simplifications to valexpr parser
The most significant change is the way CONS sequences are parsed, and
that now instead of =/:=, the operators are ==/=.
2010-09-05 01:38:47 -04:00
John Wiegley
9fcf484826 Moved up to Boost 1.44 2010-08-24 00:03:52 -04:00
John Wiegley
ff07cc6c6f Added regression test for 7C44010B 2010-08-16 16:28:08 -04:00
John Wiegley
4d155045a0 Added regression test for 9EB10714 2010-08-16 16:24:37 -04:00
Johann Klähn
0570c9c416 vim. display warning messages in quickfix window
To use this option you must set g:ledger_bin = "ledger --strict"
before the compiler plugin is loaded (your .vimrc for example).
2010-08-14 12:24:46 +02:00
Martin Michlmayr
2a787205b4 Corrected syntax error in new ledger3 doc 2010-07-30 05:01:27 -04:00
John Wiegley
48a5823181 Based symbol_needs_quotes an invalid_chars (#386) 2010-07-29 03:45:01 -04:00
John Wiegley
9edf413d9d Boost.Python fixes now that item_t is abstract 2010-07-29 03:36:54 -04:00
John Wiegley
58b5973c8e Updated README-1ST file 2010-07-02 17:26:38 -04:00
John Wiegley
4d1eea90c5 Added baseline test for "check" feature 2010-06-26 01:17:08 -04:00
John Wiegley
03912a44ab The "source" command now accepts code from stdin 2010-06-26 01:09:07 -04:00
John Wiegley
61fcfd0698 The "print" valexpr function no longer adds spaces 2010-06-26 01:08:23 -04:00
John Wiegley
64c6329b5d Added baseline tests for --meta and --meta-width 2010-06-26 01:07:30 -04:00
John Wiegley
e8fe3649c2 Added baseline test for --now 2010-06-26 01:04:32 -04:00
John Wiegley
c78f84cef2 Added baseline tests for prepend-format/width 2010-06-26 00:58:30 -04:00
John Wiegley
bd5a136ad0 Move balance divider right by prepend-width 2010-06-26 00:36:55 -04:00
John Wiegley
8a29c03490 Added "format" value expression function
This function evaluates formatting strings, returning a string.  For
example:

  format("%(amount)")

This is equivalent to "to_string(amount)".
2010-06-24 20:37:31 -04:00
John Wiegley
011bf030a2 Generalized the semantics of FOO.BAR in valexprs
Previously, FOO was evaluated to return a scope, and BAR was an
identifier looked up in that scope.  However, this prevented scope-local
functions from being called (since that is a CALL, not a plain IDENT).

Now the meaning of the "." operator is that it evaluates the left
operand in a scope type context, pushes that scope as the current object
context, and then evaluates BAR in that context.

Thus the bare word "amount" in an account context calls the same
function that "account.amount" would if evaluated in a posting context.
2010-06-24 20:37:12 -04:00
John Wiegley
35da9ad466 Added "source" command, for executing valexpr files 2010-06-24 20:29:20 -04:00
John Wiegley
024fb4f3e0 Fixed how valexpr function defs and calls work 2010-06-24 20:22:11 -04:00
John Wiegley
2f50e30b89 Scopes can now provide a description of themselves
This isn't being used yet, but it likely will to improve the information
presented to users if their value expressions fail to compile or
evaluate.
2010-06-24 19:53:59 -04:00
John Wiegley
bc51cd4651 Value scopes now take a parent scope for chaining 2010-06-24 19:40:16 -04:00
John Wiegley
129b2de901 "only" now a report query modifier for --only
This fits with "show" and "bold", etc.
2010-06-24 00:30:18 -04:00
John Wiegley
eda6cbd014 Merge branch 'next' 2010-06-23 19:31:06 -04:00
John Wiegley
93807fade6 v3.0.0-20100623 (b2) 2010-06-23 19:31:01 -04:00
John Wiegley
97143abbde Remove use of --enable-cache in tools/push 2010-06-23 19:30:59 -04:00
John Wiegley
a995090b9e 'make check' for gcov shouldn't listen to -j 2010-06-23 17:51:11 -04:00
John Wiegley
8ced9df08f Added a command-line test runner named test/run 2010-06-22 21:57:23 -04:00
John Wiegley
e8e28c794b Added report query modifiers: for, since, until
Now instead of ledger reg expense -p "this month", you can say:

  ledger reg expense for this month

And as a shorthand for "for until this month", you can just say "until
this month" or "since this month".
2010-06-22 21:56:19 -04:00
John Wiegley
0648c2f6dc Extended feat-fixated-prices.test 2010-06-22 21:03:04 -04:00
John Wiegley
266dee564f Price annotation no longer inject an implied cost
Consider the following transaction:

  2010-06-22 Sample
      Assets:Brokerage       10 AAPL {$30}
      Assets:Brokerage

Previously, this would have been equivalent to:

  2010-06-22 Sample
      Assets:Brokerage       10 AAPL @ $30
      Assets:Brokerage

However, this is not always what the user expects to happen.  When @ is
not being used, the transaction should reflect a mere transfer of
commodities.  This is now how it works, and thus the above transaction
is now equivalent to the following instead:

  2010-06-22 Sample
      Assets:Brokerage       10 AAPL {$30}
      Assets:Brokerage      -10 AAPL {$30}
2010-06-22 20:56:35 -04:00
John Wiegley
1f3dba7756 Don't do cost finalization for auto/period xacts 2010-06-22 20:53:05 -04:00
John Wiegley
205dd3a1ee Added has_date() method to item_t 2010-06-22 20:51:18 -04:00
John Wiegley
26a94fb1ed The notions of "now" and "today" now use local time 2010-06-22 17:19:35 -04:00