Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Jul 23, 2024. It is now read-only.

Commit4ee5d81

Browse files
committed
g:neovim_rpc#py, shorter VimHandler.notify call chain
1 parent0eb37d7 commit4ee5d81

File tree

3 files changed

+32
-29
lines changed

3 files changed

+32
-29
lines changed

‎autoload/neovim_rpc.vim‎

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,46 @@
11

2-
32
ifhas('pythonx')
4-
lets:py='pythonx'
3+
letg:neovim_rpc#py='pythonx'
54
lets:pyeval=function('pyxeval')
65
elseifhas('python3')
7-
lets:py='python3'
6+
letg:neovim_rpc#py='python3'
87
lets:pyeval=function('py3eval')
98
else
10-
lets:py='python'
9+
letg:neovim_rpc#py='python'
1110
lets:pyeval=function('pyeval')
1211
endif
1312

13+
func!s:py(cmd)
14+
executeg:neovim_rpc#pya:cmd
15+
endfunc
16+
1417
func!neovim_rpc#serveraddr()
1518
ifexists('g:_neovim_rpc_nvim_server')
1619
returng:_neovim_rpc_nvim_server
1720
endif
1821

19-
" must be utf-8
2022
if &encoding!=?"utf-8"
2123
throw'[vim-hug-neovim-rpc] requires `:set encoding=utf-8`'
2224
endif
2325

2426
try
25-
executes:py .'import neovim'
27+
calls:py('import neovim')
2628
catch
27-
callneovim_rpc#_error("failed executing:" .s:py ." import neovim")
29+
callneovim_rpc#_error("failed executing:" .
30+
\g:neovim_rpc#py ." import neovim")
2831
callneovim_rpc#_error(v:exception)
29-
throw'[vim-hug-neovim-rpc] requires `:' .s:py .' import neovim` command to work'
32+
throw'[vim-hug-neovim-rpc] requires `:' .g:neovim_rpc#py .
33+
\' import neovim` command to work'
3034
endtry
3135

32-
executes:py .'import neovim_rpc_server'
36+
calls:py('import neovim_rpc_server')
3337
letl:servers=s:pyeval('neovim_rpc_server.start()')
3438

3539
letg:_neovim_rpc_nvim_server=l:servers[0]
3640
letg:_neovim_rpc_vim_server=l:servers[1]
3741

3842
letg:_neovim_rpc_main_channel=ch_open(g:_neovim_rpc_vim_server)
3943

40-
" close channel before vim exit
41-
" au VimLeavePre * let s:leaving = 1 | execute s:py . ' neovim_rpc_server.stop()'
42-
4344
" identify myself
4445
callch_sendexpr(g:_neovim_rpc_main_channel,'neovim_rpc_setup')
4546

@@ -48,7 +49,7 @@ endfunc
4849

4950
" elegant python function call wrapper
5051
func!neovim_rpc#pyxcall(func,...)
51-
executes:py .'import vim, json'
52+
calls:py('import vim, json')
5253
letg:neovim_rpc#_tmp_args=copy(a:000)
5354
letl:ret=s:pyeval(a:func .'(*vim.vars["neovim_rpc#_tmp_args"])')
5455
unletg:neovim_rpc#_tmp_args
@@ -115,7 +116,7 @@ func! neovim_rpc#rpcrequest(channel, event, ...)
115116

116117
letexpr='neovim_rpc_server.responses.pop("' . rspid .'")'
117118

118-
executes:py'import neovim_rpc_server, json'
119+
calls:py('import neovim_rpc_server, json')
119120
let [err, result]=s:pyeval(expr)
120121
if err
121122
iftype(err)==type('')
@@ -165,7 +166,7 @@ func! neovim_rpc#_on_close(job)
165166
endfunc
166167

167168
func!neovim_rpc#_callback()
168-
executes:py .' neovim_rpc_server.process_pending_requests()'
169+
executeg:neovim_rpc#py .' neovim_rpc_server.process_pending_requests()'
169170
endfunc
170171

171172
letg:_neovim_rpc_main_channel=-1

‎pythonx/neovim_rpc_methods.py‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -162,16 +162,14 @@ def nvim_out_write(s):
162162
defnvim_err_write(s):
163163
nvim_call_function('neovim_rpc#_nvim_err_write', [s])
164164

165-
# NOTE https://github.com/autozimu/LanguageClient-neovim/pull/151#issuecomment-339198527
166-
# TODO
167-
168165

169166
defnvim_buf_add_highlight(buf,src_id,*args):
167+
# https://github.com/autozimu/LanguageClient-neovim/pull/151#issuecomment-339198527
168+
# FIXME
170169
returnsrc_id
171170

172-
# NOTE https://github.com/autozimu/LanguageClient-neovim/pull/151#issuecomment-339198527
173-
# TODO
174-
175171

176172
defnvim_buf_clear_highlight(*args):
173+
# https://github.com/autozimu/LanguageClient-neovim/pull/151#issuecomment-339198527
174+
# FIXME
177175
pass

‎pythonx/neovim_rpc_server.py‎

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
importneovim_rpc_protocol
1919

2020
vim_error=vim.Function('neovim_rpc#_error')
21+
vim_py=vim.eval('g:neovim_rpc#py')
2122

2223
# protable devnull
2324
ifsys.version_info.major==2:
@@ -67,8 +68,10 @@ class VimHandler(socketserver.BaseRequestHandler):
6768
_sock=None
6869

6970
@classmethod
70-
defnotify(cls,cmd="call neovim_rpc#_callback()"):
71+
defnotify(cls,cmd=None):
7172
try:
73+
ifcmdisNone:
74+
cmd=vim_py+" neovim_rpc_server.process_pending_requests()"
7275
ifnotVimHandler._sock:
7376
return
7477
withVimHandler._lock:
@@ -82,8 +85,7 @@ def notify(cls, cmd="call neovim_rpc#_callback()"):
8285
@classmethod
8386
defnotify_exited(cls,channel):
8487
try:
85-
cmd="call neovim_rpc#_on_exit(%s)"%channel
86-
cls.notify(cmd)
88+
cls.notify("call neovim_rpc#_on_exit(%s)"%channel)
8789
exceptExceptionasex:
8890
logger.exception(
8991
'notify_exited for channel [%s] exception: %s',channel,ex)
@@ -142,9 +144,6 @@ def handle(self):
142144
args,
143145
rspid)
144146

145-
# wait for response
146-
147-
148147
classSocketToStream():
149148

150149
def__init__(self,sock):
@@ -301,16 +300,19 @@ def _setup_logging(name):
301300
level=l
302301
logger.setLevel(level)
303302

303+
304304
classThreadedTCPServer(socketserver.ThreadingMixIn,socketserver.TCPServer):
305305
pass
306306

307+
307308
ifsys.platformin ['linux','darwin']:
308309
classThreadedUnixServer(socketserver.ThreadingMixIn,socketserver.UnixStreamServer):
309310
pass
310311
has_unix=True
311312
else:
312313
has_unix=False
313314

315+
314316
defstart():
315317

316318
_setup_logging('neovim_rpc_server')
@@ -321,7 +323,8 @@ def start():
321323

322324
_vim_server=ThreadedTCPServer(("127.0.0.1",0),VimHandler)
323325
_vim_server.daemon_threads=True
324-
vim_server_addr="{addr[0]}:{addr[1]}".format(addr=_vim_server.server_address)
326+
vim_server_addr="{addr[0]}:{addr[1]}".format(
327+
addr=_vim_server.server_address)
325328

326329
if'NVIM_LISTEN_ADDRESS'inos.environ:
327330
nvim_server_addr=os.environ['NVIM_LISTEN_ADDRESS']
@@ -338,7 +341,8 @@ def start():
338341
_nvim_server=ThreadedUnixServer(nvim_server_addr,NvimHandler)
339342
elifnothas_unix:
340343
_nvim_server=ThreadedTCPServer(("127.0.0.1",0),NvimHandler)
341-
nvim_server_addr="{addr[0]}:{addr[1]}".format(addr=_nvim_server.server_address)
344+
nvim_server_addr="{addr[0]}:{addr[1]}".format(
345+
addr=_nvim_server.server_address)
342346
else:
343347
nvim_server_addr=vim.eval('tempname()')
344348
_nvim_server=ThreadedUnixServer(nvim_server_addr,NvimHandler)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp