Skip to content

Commit e850af1

Browse files
committed
refactor: Cleanup escaping to be more readable and easier to review
1 parent 171c2d0 commit e850af1

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

compiler/ledger.vim

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ if exists(':CompilerSet') != 2
1818
command -nargs=* CompilerSet setlocal <args>
1919
endif
2020

21+
let s:escaped_bin = substitute(b:ledger_bin, ' ', '\\ ', 'g')
22+
let s:escaped_main = substitute(shellescape(expand(b:ledger_main)), ' ', '\\ ', 'g')
23+
let s:escaped_extra = substitute(b:ledger_extra_options, ' ', '\\ ', 'g')
24+
2125
if !b:ledger_is_hledger
2226
" Capture Ledger errors (%-C ignores all lines between "While parsing..." and "Error:..."):
2327
CompilerSet errorformat=%EWhile\ parsing\ file\ \"%f\"\\,\ line\ %l:,%ZError:\ %m,%-C%.%#
@@ -26,15 +30,15 @@ if !b:ledger_is_hledger
2630
" Skip all other lines:
2731
CompilerSet errorformat+=%-G%.%#
2832
exe 'CompilerSet makeprg='
29-
\.substitute(b:ledger_bin, ' ', '\\ ', 'g')
30-
\.'\ -f\ '.substitute(shellescape(expand(b:ledger_main)), ' ', '\\ ', 'g')
31-
\. '\ '.substitute(b:ledger_extra_options, ' ', '\\ ', 'g')
32-
\.'\ source\ '.substitute(shellescape(expand(b:ledger_main)), ' ', '\\ ', 'g')
33+
\.s:escaped_bin
34+
\.'\ -f\ '.s:escaped_main
35+
\.'\ '.s:escaped_extra
36+
\.'\ source\ '.s:escaped_main
3337
else
3438
exe 'CompilerSet makeprg='
35-
\.substitute(b:ledger_bin, ' ', '\\ ', 'g')
36-
\.'\ -f\ '.substitute(shellescape(expand(b:ledger_main)), ' ', '\\ ', 'g')
37-
\. '\ check\ '.substitute(b:ledger_extra_options, ' ', '\\ ', 'g')
39+
\.s:escaped_bin
40+
\.'\ -f\ '.s:escaped_main
41+
\.'\ check\ '.s:escaped_extra
3842
CompilerSet errorformat=hledger:\ %trror:\ %f:%l:%c:
3943
CompilerSet errorformat+=hledger:\ %trror:\ %f:%l:
4044
CompilerSet errorformat+=hledger:\ %trror:\ %f:%l-%.%#:

0 commit comments

Comments
 (0)