1
1
let s: p_dir = expand (' <sfile>:p:h' )
2
2
let g: is_running = 0
3
+ let g: socket_repl_plugin_ready = 0
3
4
let g: nvim_tcp_plugin_channel = 0
4
5
6
+ let s: not_ready = " SocketREPL plugin not ready (starting)"
7
+
5
8
function ! StartIfNotRunning ()
6
9
if g: is_running == 0
7
- echo ' Starting SocketREPL client ...'
10
+ echo ' Starting SocketREPL plugin ...'
8
11
let jar_file_path = s: p_dir . ' /../' . ' socket-repl-plugin-0.1.0-SNAPSHOT-standalone.jar'
9
12
call jobstart ([' java' , ' -jar' , jar_file_path], {' rpc' : v: true })
10
13
let g: is_running = 1
11
14
endif
12
15
endfunction
16
+ command ! Start call StartIfNotRunning ()
13
17
14
18
function ! Connect (host_colon_port)
15
- call StartIfNotRunning ()
16
19
if a: host_colon_port == " "
17
20
let conn = " localhost:5555"
18
21
else
@@ -21,45 +24,88 @@ function! Connect(host_colon_port)
21
24
let res = rpcnotify (g: nvim_tcp_plugin_channel , ' connect' , conn)
22
25
return res
23
26
endfunction
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>" )
25
36
26
37
function ! EvalBuffer ()
27
- call StartIfNotRunning ()
28
38
ReplLog
29
39
let res = rpcnotify (g: nvim_tcp_plugin_channel , ' eval-buffer' , [])
30
40
return res
31
41
endfunction
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 ()
33
51
34
52
function ! EvalCode ()
35
- call StartIfNotRunning ()
36
53
ReplLog
37
54
let res = rpcnotify (g: nvim_tcp_plugin_channel , ' eval-code' , [])
38
55
return res
39
56
endfunction
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 ()
41
66
42
67
function ! ReplLog (buffer_cmd)
43
- call StartIfNotRunning ()
44
68
let res = rpcnotify (g: nvim_tcp_plugin_channel , ' show-log' , a: buffer_cmd )
45
69
return res
46
70
endfunction
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' )
48
80
49
81
function ! DismissReplLog ()
50
- call StartIfNotRunning ()
51
82
let res = rpcnotify (g: nvim_tcp_plugin_channel , ' dismiss-log' , [])
52
83
return res
53
84
endfunction
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 ()
55
94
56
95
function ! Doc ()
57
- call StartIfNotRunning ()
58
96
ReplLog
59
97
let res = rpcnotify (g: nvim_tcp_plugin_channel , ' doc' , [])
60
98
return res
61
99
endfunction
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 ()
63
109
64
110
if ! exists (' g:disable_socket_repl_mappings' )
65
111
nnoremap <leader> eb :EvalBuffer<cr>
@@ -68,3 +114,7 @@ if !exists('g:disable_socket_repl_mappings')
68
114
nnoremap <leader> rlog :ReplLog<cr>
69
115
nnoremap <leader> drlog :DismissReplLog<cr>
70
116
endif
117
+
118
+ if ! exists (' g:manually_start_socket_repl_plugin' )
119
+ call StartIfNotRunning ()
120
+ endif
0 commit comments