Skip to content

Commit 6990fa2

Browse files
committed
chore: Use buffer variable to toggle ledger variant differences
1 parent fa06739 commit 6990fa2

File tree

5 files changed

+27
-6
lines changed

5 files changed

+27
-6
lines changed

autoload/ledger.vim

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
scriptencoding utf-8
2+
3+
if !exists ('b:is_hledger')
4+
let b:is_hledger = g:ledger_is_hledger
5+
endif
6+
27
" vim:ts=2:sw=2:sts=2:foldmethod=marker
38
function! ledger#transaction_state_toggle(lnum, ...) abort
49
if a:0 == 1
@@ -639,7 +644,7 @@ endf
639644
" Build a ledger command to process the given file.
640645
function! s:ledger_cmd(file, args) abort
641646
let l:options = g:ledger_extra_options
642-
if len(g:ledger_date_format) > 0 && !g:ledger_is_hledger
647+
if len(g:ledger_date_format) > 0 && !b:is_hledger
643648
let l:options = join([l:options, '--date-format', g:ledger_date_format,
644649
\ '--input-date-format', g:ledger_date_format])
645650
endif

compiler/ledger.vim

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ if !exists('g:ledger_main')
1919
let g:ledger_main = '%'
2020
endif
2121

22-
if !g:ledger_is_hledger
22+
if !exists ('b:is_hledger')
23+
let b:is_hledger = g:ledger_is_hledger
24+
endif
25+
26+
if !b:is_hledger
2327
" Capture Ledger errors (%-C ignores all lines between "While parsing..." and "Error:..."):
2428
CompilerSet errorformat=%EWhile\ parsing\ file\ \"%f\"\\,\ line\ %l:,%ZError:\ %m,%-C%.%#
2529
" Capture Ledger warnings:

doc/ledger.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,18 @@ behaviour of the ledger filetype.
279279

280280
let g:ledger_bin = 'ledger'
281281

282+
* Whether to use ledger or hledger specific features. Setting this value is
283+
optional and in most coses will be guessed correctly based on g:ledger_bin,
284+
but in the event it isn't guessed correctly or you want to use different
285+
syntax features even with your default tooling setup for the other engine
286+
this flag can be set to override the value.
287+
288+
let g:ledger_is_hledger = v:true
289+
290+
A per-buffer variant of this can also be used as an ovrride:
291+
292+
let b:is_hledger = v:true
293+
282294
* Additional default options for the `ledger` executable:
283295

284296
let g:ledger_extra_options = ''

spec/syntax.vader

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Given ledger (comment tags):
66
b
77

88
Before:
9-
let g:ledger_is_hledger = 1
9+
let b:is_hledger = v:true
1010

1111
Execute (hledger tags):
1212
" AssertNotEqual SyntaxAt(2, 16), 'ledgerTag'
@@ -20,7 +20,7 @@ Execute (hledger tags):
2020
" AssertEqual SyntaxAt(3, 30), 'ledgerTagValue'
2121

2222
Before:
23-
let g:ledger_is_hledger = 0
23+
let b:is_hledger = v:false
2424

2525
Execute (hledger tags):
2626
" AssertEqual SyntaxAt(2, 14), 'ledgerTag'
@@ -30,7 +30,7 @@ Execute (hledger tags):
3030

3131

3232
Before:
33-
let g:ledger_is_hledger = 1
33+
let b:is_hledger = v:true
3434
edit spec/hledger-cheatsheet.ledger
3535

3636
Execute (Hledger cheatsheet syntax):

syntax/ledger.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ if exists('b:current_syntax')
1212
endif
1313

1414
if !exists ('b:is_hledger')
15-
let b:is_hledger = get(g:, 'ledger_is_hledger', 0) == 1
15+
let b:is_hledger = g:ledger_is_hledger
1616
endif
1717

1818
" Force old regex engine (:help two-engines)

0 commit comments

Comments
 (0)