11let s: p_dir = expand (' <sfile>:p:h' )
22let g: is_running = 0
3+ let g: socket_repl_plugin_ready = 0
34let g: nvim_tcp_plugin_channel = 0
45
6+ let s: not_ready = " SocketREPL plugin not ready (starting)"
7+
58function ! StartIfNotRunning ()
69 if g: is_running == 0
7- echo ' Starting SocketREPL client ...'
10+ echo ' Starting SocketREPL plugin ...'
811 let jar_file_path = s: p_dir . ' /../' . ' socket-repl-plugin-0.1.0-SNAPSHOT-standalone.jar'
912 call jobstart ([' java' , ' -jar' , jar_file_path], {' rpc' : v: true })
1013 let g: is_running = 1
1114 endif
1215endfunction
16+ command ! Start call StartIfNotRunning ()
1317
1418function ! Connect (host_colon_port)
15- call StartIfNotRunning ()
1619 if a: host_colon_port == " "
1720 let conn = " localhost:5555"
1821 else
@@ -21,45 +24,88 @@ function! Connect(host_colon_port)
2124 let res = rpcnotify (g: nvim_tcp_plugin_channel , ' connect' , conn)
2225 return res
2326endfunction
24- command ! -nargs =? Connect call Connect (" <args>" )
27+
28+ function ! ReadyConnect (host_colon_port)
29+ if g: socket_repl_plugin_ready == 1
30+ call Connect (a: host_colon_port )
31+ else
32+ echo s: not_ready
33+ endif
34+ endfunction
35+ command ! -nargs =? Connect call ReadyConnect (" <args>" )
2536
2637function ! EvalBuffer ()
27- call StartIfNotRunning ()
2838 ReplLog
2939 let res = rpcnotify (g: nvim_tcp_plugin_channel , ' eval-buffer' , [])
3040 return res
3141endfunction
32- command ! EvalBuffer call EvalBuffer ()
42+
43+ function ! ReadyEvalBuffer ()
44+ if g: socket_repl_plugin_ready == 1
45+ call EvalBuffer ()
46+ else
47+ echo s: not_ready
48+ endif
49+ endfunction
50+ command ! EvalBuffer call ReadyEvalBuffer ()
3351
3452function ! EvalCode ()
35- call StartIfNotRunning ()
3653 ReplLog
3754 let res = rpcnotify (g: nvim_tcp_plugin_channel , ' eval-code' , [])
3855 return res
3956endfunction
40- command ! EvalCode call EvalCode ()
57+
58+ function ! ReadyEvalCode ()
59+ if g: socket_repl_plugin_ready == 1
60+ call EvalCode ()
61+ else
62+ echo s: not_ready
63+ endif
64+ endfunction
65+ command ! EvalCode call ReadyEvalCode ()
4166
4267function ! ReplLog (buffer_cmd)
43- call StartIfNotRunning ()
4468 let res = rpcnotify (g: nvim_tcp_plugin_channel , ' show-log' , a: buffer_cmd )
4569 return res
4670endfunction
47- command ! ReplLog call ReplLog (' :botright new' )
71+
72+ function ! ReadyReplLog (buffer_cmd)
73+ if g: socket_repl_plugin_ready == 1
74+ call ReplLog (a: buffer_cmd )
75+ else
76+ echo s: not_ready
77+ endif
78+ endfunction
79+ command ! ReplLog call ReadyReplLog (' :botright new' )
4880
4981function ! DismissReplLog ()
50- call StartIfNotRunning ()
5182 let res = rpcnotify (g: nvim_tcp_plugin_channel , ' dismiss-log' , [])
5283 return res
5384endfunction
54- command ! DismissReplLog call DismissReplLog ()
85+
86+ function ! ReadyDismissReplLog ()
87+ if g: socket_repl_plugin_ready == 1
88+ call DismissReplLog ()
89+ else
90+ echo s: not_ready
91+ endif
92+ endfunction
93+ command ! DismissReplLog call ReadyDismissReplLog ()
5594
5695function ! Doc ()
57- call StartIfNotRunning ()
5896 ReplLog
5997 let res = rpcnotify (g: nvim_tcp_plugin_channel , ' doc' , [])
6098 return res
6199endfunction
62- command ! Doc call Doc ()
100+
101+ function ! ReadyDoc ()
102+ if g: socket_repl_plugin_ready == 1
103+ call Doc ()
104+ else
105+ echo s: not_ready
106+ endif
107+ endfunction
108+ command ! Doc call ReadyDoc ()
63109
64110if ! exists (' g:disable_socket_repl_mappings' )
65111 nnoremap <leader> eb :EvalBuffer<cr>
@@ -68,3 +114,7 @@ if !exists('g:disable_socket_repl_mappings')
68114 nnoremap <leader> rlog :ReplLog<cr>
69115 nnoremap <leader> drlog :DismissReplLog<cr>
70116endif
117+
118+ if ! exists (' g:manually_start_socket_repl_plugin' )
119+ call StartIfNotRunning ()
120+ endif
0 commit comments