Skip to content
This repository has been archived by the owner on Jul 23, 2024. It is now read-only.

Commit

Permalink
use unix socket as nvim server when on linux or mac
Browse files Browse the repository at this point in the history
  • Loading branch information
roxma committed Jul 30, 2018
1 parent d00e2a2 commit 5a20db1
Showing 1 changed file with 28 additions and 8 deletions.
36 changes: 28 additions & 8 deletions pythonx/neovim_rpc_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -301,21 +301,41 @@ def _setup_logging(name):
level = l
logger.setLevel(level)

class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass

if sys.platform in ['linux', 'darwin']:
class ThreadedUnixServer(socketserver.ThreadingMixIn, socketserver.UnixStreamServer):
pass
has_unix = True
else:
has_unix = False

def start():

_setup_logging('neovim_rpc_server')

class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass

# 0 for random port
global _vim_server
global _nvim_server
_vim_server = ThreadedTCPServer(("127.0.0.1", 0), VimHandler)
_nvim_server = ThreadedTCPServer(("127.0.0.1", 0), NvimHandler)
_vim_server.daemon_threads = True
_nvim_server.daemon_threads = True

if not has_unix:
_vim_server = ThreadedTCPServer(("127.0.0.1", 0), VimHandler)
_nvim_server = ThreadedTCPServer(("127.0.0.1", 0), NvimHandler)
_vim_server.daemon_threads = True
_nvim_server.daemon_threads = True

nvim_server_addr = "{addr[0]}:{addr[1]}".format(addr=_nvim_server.server_address)
vim_server_addr = "{addr[0]}:{addr[1]}".format(addr=_vim_server.server_address)
else:
nvim_server_addr = vim.eval('tempname()')

_vim_server = ThreadedTCPServer(("127.0.0.1", 0), VimHandler)
_nvim_server = ThreadedUnixServer(nvim_server_addr, NvimHandler)
_vim_server.daemon_threads = True
_nvim_server.daemon_threads = True

vim_server_addr = "{addr[0]}:{addr[1]}".format(addr=_vim_server.server_address)

# Start a thread with the server -- that thread will then start one
# more thread for each request
Expand All @@ -328,7 +348,7 @@ class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
clients_server_thread.daemon = True
clients_server_thread.start()

return ["{addr[0]}:{addr[1]}".format(addr=_nvim_server.server_address), "{addr[0]}:{addr[1]}".format(addr=_vim_server.server_address)]
return [nvim_server_addr, vim_server_addr]


def process_pending_requests():
Expand Down

0 comments on commit 5a20db1

Please sign in to comment.