Define proper argument count for all flags

pull/20/head
Marco Hinz 8 years ago
parent 3144970ee1
commit bbef5d0725

@ -32,10 +32,6 @@ from neovim import attach
class Neovim():
"""Thin wrapper around nvim.attach() for lazy attaching.
This helps handling the silent and non-silent arguments.
"""
def __init__(self, address):
self.address = address
self.server = None
@ -53,27 +49,30 @@ class Neovim():
except:
if not silent:
print(textwrap.dedent("""
Can't connect to: {}
[!] Can't connect to: {}
If your intention was to communicate with a remote nvim
instance, verify that \":echo v:servername\" in your
instance uses the same address.
Verify that \":echo v:servername\" in your nvim instance uses the
same address.
SOLUTION 1 (from server side):
SOLUTION 1 (from server side):
Expose $NVIM_LISTEN_ADDRESS to the environment before
starting nvim, so that v:servername gets set accordingly.
Expose $NVIM_LISTEN_ADDRESS to the environment before starting
nvim, so that v:servername gets set accordingly.
$ NVIM_LISTEN_ADDRESS=/tmp/foo nvim
$ NVIM_LISTEN_ADDRESS=/tmp/foo nvim
SOLUTION 2 (from client side):
SOLUTION 2 (from client side):
Expose $NVIM_LISTEN_ADDRESS to the environment before
using nvr or use its --servername option. If neither
is given, nvr assumes \"/tmp/nvimsocket\".
Expose $NVIM_LISTEN_ADDRESS to the environment before using
nvr or use its --servername option. If neither is given, nvr
assumes \"/tmp/nvimsocket\".
$ NVIM_LISTEN_ADDRESS=/tmp/foo nvr --remote file1 file2
$ nvr --servername /tmp/foo --remote file1 file2
$ NVIM_LISTEN_ADDRESS=/tmp/foo nvr --remote file1 file2
$ nvr --servername /tmp/foo --remote file1 file2
""".format(self.address)))
[*] Starting a new instance with this address: {}
""".format(self.address, self.address)))
return False
return True
@ -130,35 +129,42 @@ def parse_args():
description = desc)
parser.add_argument('--remote',
action = 'store_true',
nargs = '+',
metavar = '<file>',
help = 'Edit files in a remote instance. If no server is found, throw an error and run nvim locally instead.')
parser.add_argument('--remote-wait',
action = 'store_true',
nargs = '+',
metavar = '<file>',
help = 'Same as --remote.')
parser.add_argument('--remote-silent',
action = 'store_true',
nargs = '+',
metavar = '<file>',
help = "Same as --remote, but don't throw an error if no server is found.")
parser.add_argument('--remote-wait-silent',
action = 'store_true',
help = "Same as --remote-silent.")
parser.add_argument('--remote-tab', '-p',
action = 'store_true',
nargs = '+',
metavar = '<file>',
help = 'Tabedit files in a remote instance. If no server is found, throw an error and run nvim locally instead.')
parser.add_argument('--remote-tab-wait',
action = 'store_true',
nargs = '+',
metavar = '<file>',
help = 'Same as --remote-tab.')
parser.add_argument('--remote-tab-silent',
action = 'store_true',
nargs = '+',
metavar = '<file>',
help = "Same as --remote-tab, but don't throw an error if no server is found.")
parser.add_argument('--remote-tab-wait-silent', action = 'store_true', help = "Same as --remote-tab-silent.")
parser.add_argument('--remote-tab-wait-silent',
nargs = '+',
metavar = '<file>',
help = "Same as --remote-tab-silent.")
parser.add_argument('--remote-send',
action = 'store',
metavar = '<keys>',
help = 'Send key presses.')
parser.add_argument('--remote-expr',
action = 'store',
metavar = '<expr>',
help = 'Evaluate expression on server and print result in shell.')
@ -177,12 +183,10 @@ def parse_args():
metavar = '<cmd>',
help = 'Execute a command.')
parser.add_argument('-o',
action = 'store',
nargs = '+',
metavar = '<file>',
help = 'Open files via ":split".')
parser.add_argument('-O',
action = 'store',
nargs = '+',
metavar = '<file>',
help = 'Open files via ":vsplit".')
@ -212,18 +216,27 @@ def main():
address = '/tmp/nvimsocket'
if flags.serverlist:
print(address)
print(address)
neovim = Neovim(address)
if flags.remote or flags.remote_wait:
neovim.execute(arguments, 'edit', False)
elif flags.remote_silent or flags.remote_wait_silent:
neovim.execute(arguments, 'edit', True)
elif flags.remote_tab or flags.remote_tab_wait:
neovim.execute(arguments, 'tabedit', False)
elif flags.remote_tab_silent or flags.remote_tab_wait_silent:
neovim.execute(arguments, 'tabedit', True)
if flags.remote:
neovim.execute(flags.remote, 'edit')
if flags.remote_wait:
neovim.execute(flags.remote_wait, 'edit')
if flags.remote_silent:
neovim.execute(flags.remote_silent, 'edit', silent=True)
if flags.remote_wait_silent:
neovim.execute(flags.remote_wait_silent, 'edit', silent=True)
if flags.remote_tab:
neovim.execute(flags.remote_tab, 'tabedit')
if flags.remote_tab_wait:
neovim.execute(flags.remote_tab_wait, 'tabedit')
if flags.remote_tab_silent:
neovim.execute(flags.remote_tab_silent, 'tabedit', silent=True)
if flags.remote_tab_wait_silent:
neovim.execute(flags.remote_tab_wait_silent, 'tabedit', silent=True)
if flags.remote_send and neovim.is_attached():
neovim.server.input(flags.remote_send)
@ -265,8 +278,8 @@ def main():
All arguments not consumed by any flag, will be fed to --remote.
"""
if arguments and neovim.is_attached():
neovim.execute(arguments, 'edit', False)
if arguments:
neovim.execute(arguments, 'edit')
if __name__ == '__main__':

Loading…
Cancel
Save