From 914ae985fb05c4c7f6d8e652bbc53a2de12542df Mon Sep 17 00:00:00 2001 From: Zhuoyun Wei Date: Tue, 12 Sep 2017 07:39:28 -0400 Subject: Fix a regression bug in AlignCommodity Since commit e17eb3d, putting a plus sign before a number causes :AlignCommodity to behaviour incorrectly. A reproducible example: Assets:Cash -100.00 USD Expenses:Food +100.00 USD This commit fixes the regression bug. --- autoload/beancount.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoload/beancount.vim b/autoload/beancount.vim index 81067a3..c5d8f97 100644 --- a/autoload/beancount.vim +++ b/autoload/beancount.vim @@ -39,7 +39,7 @@ function! beancount#align_commodity(line1, line2) abort " Look for a minus sign and a number (possibly containing commas) and " align on the next column. - let l:separator = matchend(l:line, '^\v(-)?[,[:digit:]]+', l:begin_number) + 1 + let l:separator = matchend(l:line, '^\v([-+])?[,[:digit:]]+', l:begin_number) + 1 if l:separator < 0 | continue | endif let l:has_spaces = l:begin_number - l:end_account let l:need_spaces = g:beancount_separator_col - l:separator + l:has_spaces -- cgit v1.2.3-2-gb3c3 From 7db0d219e1bb2b1063a982b5cf6917502127c121 Mon Sep 17 00:00:00 2001 From: Zhuoyun Wei Date: Tue, 12 Sep 2017 22:55:43 +0800 Subject: test: AlignCommodity with -/+ signs --- test/align.vader | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/align.vader b/test/align.vader index 76496fc..db6563e 100644 --- a/test/align.vader +++ b/test/align.vader @@ -1,6 +1,8 @@ Given beancount: 2012-12-12 balance Assets:LongLongLongAccount 50.00 2012-12-12 balance Assets:Cash 50.00 + 2012-12-12 balance Assets:Cash -50.00 + 2012-12-12 balance Assets:Cash +50.00 2012-12-12 price EUR 50.00 USD metadata: 50 Assets:Cash 50 @@ -15,6 +17,8 @@ Execute (align): Expect beancount: 2012-12-12 balance Assets:LongLongLongAccount 50.00 2012-12-12 balance Assets:Cash 50.00 + 2012-12-12 balance Assets:Cash -50.00 + 2012-12-12 balance Assets:Cash +50.00 2012-12-12 price EUR 50.00 USD metadata: 50 Assets:Cash 50 @@ -30,6 +34,8 @@ Execute (change alignment column and align again): Expect beancount: 2012-12-12 balance Assets:LongLongLongAccount 50.00 2012-12-12 balance Assets:Cash 50.00 + 2012-12-12 balance Assets:Cash -50.00 + 2012-12-12 balance Assets:Cash +50.00 2012-12-12 price EUR 50.00 USD metadata: 50 Assets:Cash 50 -- cgit v1.2.3-2-gb3c3