Skip to content

Commit 0302981

Browse files
Refactor to a more consistent injection style
Also introduces debug-repl, because I haven't written an extension method yet.
1 parent 967f481 commit 0302981

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

autoload/jack_in.vim

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

11-
let s:boot_deps = [['cider/cider-nrepl', '0.15.0-SNAPSHOT'], ['refactor-nrepl', '2.3.1']]
12-
let s:boot_middleware = ['cider.nrepl/cider-middleware', 'refactor-nrepl.middleware/wrap-refactor']
13-
14-
let s:lein_plugins = [['cider/cider-nrepl', '0.15.0-SNAPSHOT'], ['refactor-nrepl', '2.3.1']]
11+
let s:injections = [{'dependency': ['cider/cider-nrepl', '0.15.0'],
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+
\ {'dependency': ['com.gfredericks.dominic/debug-repl', '0.0.1'],
17+
\ 'middleware': 'com.gfredericks.debug-repl/wrap-debug-repl'}]
1518

1619
function! jack_in#boot(...)
1720
let l:boot_string = 'boot -i "(require ''cider.tasks)"'
18-
for dep in s:boot_deps
19-
let l:boot_string .= ' -d '.dep[0].':'.dep[1]
21+
for inj in s:injections
22+
let l:boot_string .= printf(' -d %s:%s', inj['dependency'][0], inj['dependency'][1])
2023
endfor
2124
let l:boot_string .= ' cider.tasks/add-middleware'
22-
for middleware in s:boot_middleware
23-
let l:boot_string .= ' -m '.middleware
25+
for inj in s:injections
26+
let l:boot_string .= ' -m '.inj['middleware']
2427
endfor
2528
if a:0 > 0 && a:1 != ''
2629
let l:boot_task = join(a:000, ' ')
@@ -32,8 +35,14 @@ endfunction
3235

3336
function! jack_in#lein(...)
3437
let l:lein_string = 'lein'
35-
for plugin in s:lein_plugins
36-
let l:lein_string .= ' update-in :plugins conj ''['.plugin[0].' "'.plugin[1].'"]'' --'
38+
for inj in s:injections
39+
let l:dep_vector = printf('''[%s "%s"]''', inj['dependency'][0], inj['dependency'][1])
40+
if !get(inj, 'lein_plugin')
41+
let l:lein_string .= ' update-in :dependencies conj '.l:dep_vector.' --'
42+
let l:lein_string .= ' update-in :repl-options:nrepl-middleware conj '.inj['middleware'].' --'
43+
else
44+
let l:lein_string .= ' update-in :plugins conj '.l:dep_vector.' --'
45+
endif
3746
endfor
3847
if a:0 > 0 && a:1 != ''
3948
let l:lein_task = join(a:000, ' ')

0 commit comments

Comments
 (0)