Commit Graph

45 Commits (172ee11a1341131456ef00a2f19e6bb12e84f416)

Author SHA1 Message Date
Marco Hinz 172ee11a13
Filter filenames through fnameescape()
Fixes #77
7 years ago
Marco Hinz ac49415d43
Gracefully close the event loop
This uses the APIs new close() method from neovim 0.2.3.
7 years ago
Marco Hinz a08ffdf89a
New option: --version 7 years ago
Marco Hinz 97601e6847
Help: add GitHub URL 7 years ago
Marco Hinz aeb08b81f2
Make -c/-cc/--remote-expr read from stdin on -
Fixes #72.
7 years ago
Marco Hinz 9f018a87d4
Refactoring: Neovim/nvim -> Nvr/nvr 7 years ago
Marco Hinz 01fade4a9d
Refactoring: silencing
Fixes #69.
7 years ago
Marco Hinz df89d17f56
Refactoring: sanitize address 7 years ago
Marco Hinz 83b9d014f7
New option: --nostart
By default nvr starts a new nvim process if none is found. Use this option to
avoid that.

Closes #68.
7 years ago
Marco Hinz 8dccd952b5
Don't start nvim on --serverlist
Fixes #67.
7 years ago
Marco Hinz a10e931247
Correct -h output 7 years ago
Marco Hinz 40f5705eef
Be more precise when to implicitly use --remote-silent 7 years ago
Marco Hinz f8250c0c38
From all --remote* options, check the implicit --remote-silent last
References #43.
7 years ago
Marco Hinz 905bbb7dc3
Fix -p
Closes #65.
7 years ago
Marco Hinz 67f36cc550
Improve error message of --remote-expr
References #63.
7 years ago
Marco Hinz 0c7068b2cc
Start new nvim instance when no argument given
Closes #62.
7 years ago
Marco Hinz 282aa12fb4
Check if Unix domain socket is connectable before attaching 7 years ago
Marco Hinz d28c9c00bf
Remove useless level of indentation 7 years ago
Marco Hinz 538e18be6d
Move address type detection logic into own function 7 years ago
Marco Hinz ec612dc16c
Improve check for IPv4 address
If the address contains only one colon followed by a number, assume TCPv4 and
a Unix domain otherwise.

Closes #60.
7 years ago
Marco Hinz d138b98bde
Ignore "E37: No write since last change" in --remote*
References https://github.com/mhinz/neovim-remote/issues/54
7 years ago
Marco Hinz 64e9f486a1
Revert "Temporarily reset &modified when opening files"
This reverts commit 6845b8b5a6.
7 years ago
Marco Hinz 6845b8b5a6
Temporarily reset &modified when opening files
:edit and similar commands used by the --remote* options throw an exception if
the buffer is modified:

    E37: No write since last change (add ! to override)

Using :enew! doesn't work, since it reverts all changes. Thus we simply reset
&modified temporarily.

References https://github.com/mhinz/neovim-remote/issues/54
7 years ago
Marco Hinz c1fedb4de8
Redirect stdout to stdin when forking
This is needed so the new nvim process ignores the data in stdin, because it
comes from a TTY now.
7 years ago
Marco Hinz 4b8c384462
Only process + at the beginning of --remote*
nvr +1 +2 3 +4 5

The above will do the following in the given order:

  - open file "5"
  - open file "+4"
  - open file "3"
  - execute :2
  - execute :1

That's how Vim does it.
7 years ago
Marco Hinz 957082771b
Ignore OSError instead of FileNotFoundError 7 years ago
Marco Hinz 13808fd5ec
Ignore only invalid addresses 7 years ago
Harm te Hennepe a85aa94321 Support multiple + commands and let empty + go to the last line 7 years ago
Drew Neil ee9a6c4f39 Document `-p` flag independent of `--remote-tab` flag 7 years ago
Marco Hinz a973424000
Make -s overwrite all other options
References https://github.com/mhinz/neovim-remote/issues/48#issuecomment-318163612
7 years ago
Marco Hinz 625b8ddf45
Change command to run using $NVR_CMD
References https://github.com/mhinz/neovim-remote/issues/48
7 years ago
Marco Hinz 4e827d4d7d
Process all options before waiting
References https://github.com/mhinz/neovim-remote/issues/46
7 years ago
Marco Hinz fa9ecbcc71
--serverlist: don't print empty lines 7 years ago
Marco Hinz af4103a16a
Sort short options in help output 7 years ago
Marco Hinz 5df48bbf2c
Add -s option 7 years ago
Marco Hinz 031c7a911f
Rename variable "flags" to "options" 7 years ago
Marco Hinz 70f8bf86d7
Docs: add nvr/git example to help message 7 years ago
Marco Hinz 1e9be0473f
Docs: instance -> process 7 years ago
Marco Hinz 2111ea9d0a
Consider the possibility that "nvim" is not in $PATH 7 years ago
Marco Hinz 6e1fe04456
Make forked child try attaching multiple times
This most likely makes it attach faster than the previous fixed 1 second
timeout.
7 years ago
Marco Hinz 58d56cba6b
More robust socket handling 7 years ago
Marco Hinz 8f8fa3ed27
Improve the start of a new instance
If the given instance is not found, we fork nvr.

The parent process gets replaced by a new nvim instance.

The child waits for one second and then tries attaching to the newly started
nvim instance.

Advantage: All options passed to nvr are now correctly handled even by new nvim
instances that were started by nvr.

References https://github.com/mhinz/neovim-remote/issues/44
7 years ago
Marco Hinz 7422ee6d90
Handle files beginning with - for --remote options
Small tradeoff: You get no error anymore when you provide no arguments to
--remote and friends.

Internally this results in an empty list instead of None. This is important,
because otherwise you'd get an error with `--remote -- foo`, because `--` and
`foo` would be parsed into the remaining arguments and --remote had no argument.

In return it's now possible to provide files beginning with a dash to any
--remote option. Leading -- before those files is not needed.

Equivalent:

    --remote --file
    --remote -- --file

Fixes https://github.com/mhinz/neovim-remote/issues/43
7 years ago
Marco Hinz 39519a7b00
Make main() take optional environment 7 years ago
Marco Hinz aee0fa049c
Rename package to "nvr" 7 years ago