Skip to content

Commit 1ed927f

Browse files
Add overridable versions
Mostly intended for my own use, this allows you to create a file like this: ``` " after/plugin/jack_in_dependencies.vim let g:jack_in_injections['com.gfredericks.dominic/debug-repl'] = \ {'version': '0.0.1', \ 'middleware': 'com.gfredericks.debug-repl/wrap-debug-repl'} let g:jack_in_injections['cider/cider-nrepl']['version'] = '0.16.0-FOOZZZ' ``` In this case, it updates the cider-nrepl version to one I've built locally, and adds a debugger dependency. I hope for plugins to utilize this functionality for themselves at some point.
1 parent 331536e commit 1ed927f

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

autoload/jack_in.vim

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,13 @@ function! s:RunRepl(cmd)
88
endif
99
endfunction
1010

11-
let s:injections = [{'dependency': ['cider/cider-nrepl', '0.15.1'],
12-
\ 'lein_plugin': 1,
13-
\ 'middleware': 'cider.nrepl/cider-middleware'},
14-
\ {'dependency': ['refactor-nrepl', '2.3.1'],
15-
\ 'middleware': 'refactor-nrepl.middleware/wrap-refactor'}]
16-
1711
function! jack_in#boot(...)
1812
let l:boot_string = 'boot -i "(require ''cider.tasks)"'
19-
for inj in s:injections
20-
let l:boot_string .= printf(' -d %s:%s', inj['dependency'][0], inj['dependency'][1])
13+
for [dep, inj] in items(g:jack_in_injections)
14+
let l:boot_string .= printf(' -d %s:%s', dep, inj['version'])
2115
endfor
2216
let l:boot_string .= ' cider.tasks/add-middleware'
23-
for inj in s:injections
17+
for inj in values(g:jack_in_injections)
2418
let l:boot_string .= ' -m '.inj['middleware']
2519
endfor
2620
if a:0 > 0 && a:1 != ''
@@ -33,8 +27,8 @@ endfunction
3327

3428
function! jack_in#lein(...)
3529
let l:lein_string = 'lein'
36-
for inj in s:injections
37-
let l:dep_vector = printf('''[%s "%s"]''', inj['dependency'][0], inj['dependency'][1])
30+
for [dep, inj] in items(g:jack_in_injections)
31+
let l:dep_vector = printf('''[%s "%s"]''', dep, inj['version'])
3832
if !get(inj, 'lein_plugin')
3933
let l:lein_string .= ' update-in :dependencies conj '.l:dep_vector.' --'
4034
let l:lein_string .= ' update-in :repl-options:nrepl-middleware conj '.inj['middleware'].' --'

plugin/jack_in.vim

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,14 @@ let g:loaded_jack_in = 1
66
let g:default_lein_task = 'repl'
77
let g:default_boot_task = 'repl'
88

9+
let g:jack_in_injections =
10+
\ {'cider/cider-nrepl':
11+
\ {'version': '0.15.1',
12+
\ 'middleware': 'cider.nrepl/cider-middleware',
13+
\ 'lein_plugin': 1},
14+
\ 'refactor-nrepl':
15+
\ {'version': '2.3.1',
16+
\ 'middleware': 'refactor-nrepl.middleware/wrap-refactor'}}
17+
918
command! -nargs=* Boot call jack_in#boot(<q-args>)
1019
command! -nargs=* Lein call jack_in#lein(<q-args>)

0 commit comments

Comments
 (0)