Skip to content

Commit 5d5dc4c

Browse files
committed
Port to Neovim: Handle signal sending via vim.loop.kill
1 parent e1cfdc5 commit 5d5dc4c

1 file changed

Lines changed: 22 additions & 35 deletions

File tree

plugin/acme.vim

Lines changed: 22 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,24 @@ function s:JobStop(job)
192192
endif
193193
endfunc
194194

195+
function s:JobKill(job, sig)
196+
if has('nvim')
197+
let sig = a:sig
198+
if type(sig) == type("")
199+
let map = {
200+
\ 'int': 2,
201+
\ 'hup': 1,
202+
\ 'term': 15,
203+
\ 'kill': 9
204+
\ }
205+
let sig = get(map, sig, 15)
206+
endif
207+
silent! call luaeval("vim.loop.kill(vim.fn.jobpid(_A), _B)", [a:job, sig])
208+
else
209+
call job_stop(a:job, a:sig)
210+
endif
211+
endfunc
212+
195213
function s:ChanSend(job, data)
196214
if has('nvim')
197215
call chansend(a:job, a:data)
@@ -858,7 +876,7 @@ endfunc
858876

859877
function s:Scroll(topline)
860878
let v = winsaveview()
861-
let v.topline = a:topline
879+
v.topline = a:topline
862880
call winrestview(v)
863881
endfunc
864882

@@ -943,7 +961,7 @@ function s:RestVisual(vis)
943961
call setpos("'>", a:vis[1])
944962
if a:vis[0][1] != 0
945963
let v = winsaveview()
946-
silent! exe "normal! `<".a:vis[2]."`>\<Esc>"
964+
silent! exe "normal! `<".a:vis[2]." \<Esc>"
947965
call winrestview(v)
948966
endif
949967
endfunc
@@ -1025,37 +1043,6 @@ function s:RightRelease(click)
10251043
call s:Open(cmd, a:click, dir, w)
10261044
endfunc
10271045

1028-
for m in ['', 'i']
1029-
for n in ['', '2-', '3-', '4-']
1030-
for c in ['Mouse', 'Drag', 'Release']
1031-
exe m.'noremap <'.n.'Middle'.c.'> <Nop>'
1032-
exe m.'noremap <'.n.'Right'.c.'> <Nop>'
1033-
endfor
1034-
endfor
1035-
exe m.'noremap <silent> <MiddleDrag> <LeftDrag>'
1036-
exe m.'noremap <silent> <RightDrag> <LeftDrag>'
1037-
endfor
1038-
for n in ['', '2-', '3-', '4-']
1039-
exe 'nnoremap <silent> <'.n.'MiddleMouse>'
1040-
\ ':call <SID>MousePress("")<CR>'
1041-
exe 'vnoremap <silent> <'.n.'MiddleMouse>'
1042-
\ ':<C-u>call <SID>MousePress("v")<CR>'
1043-
exe 'nnoremap <silent> <'.n.'MiddleRelease>'
1044-
\ ':call <SID>MiddleRelease(col("."))<CR>'
1045-
exe 'nnoremap <silent> <'.n.'RightMouse>'
1046-
\ ':call <SID>MousePress("")<CR>'
1047-
exe 'vnoremap <silent> <'.n.'RightMouse>'
1048-
\ ':<C-u>call <SID>MousePress("v")<CR>'
1049-
exe 'nnoremap <silent> <'.n.'RightRelease>'
1050-
\ ':call <SID>RightRelease(col("."))<CR>'
1051-
endfor
1052-
inoremap <silent> <MiddleMouse> <C-o>:call <SID>MousePress('')<CR>
1053-
inoremap <silent> <MiddleRelease> <C-o>:call <SID>MiddleRelease(col('.'))<CR>
1054-
vnoremap <silent> <MiddleRelease> :<C-u>call <SID>MiddleRelease(-1)<CR>
1055-
inoremap <silent> <RightMouse> <C-o>:call <SID>MousePress('')<CR>
1056-
inoremap <silent> <RightRelease> <C-o>:call <SID>RightRelease(col('.'))<CR>
1057-
vnoremap <silent> <RightRelease> :<C-u>call <SID>RightRelease(-1)<CR>
1058-
10591046
function s:Clear(b)
10601047
call deletebufline(a:b, 1, "$")
10611048
if has_key(s:scratch, a:b)
@@ -1122,7 +1109,7 @@ endfunc
11221109

11231110
function s:Signal(sig)
11241111
for job in s:Jobs(bufnr())
1125-
call job_stop(job.h, a:sig)
1112+
call s:JobKill(job.h, a:sig)
11261113
endfor
11271114
endfunc
11281115

@@ -1369,4 +1356,4 @@ if s:ctrlexe != ''
13691356
\ })
13701357
endif
13711358
let $EDITOR = s:ctrlexe
1372-
endif
1359+
endif

0 commit comments

Comments
 (0)