doc: v:servername, serverstart()

This commit is contained in:
Justin M. Keyes 2015-05-09 02:43:47 -04:00
parent 64c7a36933
commit 84443f176e
5 changed files with 32 additions and 30 deletions

View File

@ -1583,7 +1583,9 @@ v:scrollstart String describing the script or function that caused the
hit-enter prompt.
*v:servername* *servername-variable*
v:servername The resulting registered |x11-clientserver| name if any.
v:servername Default {Nvim} server address. Equivalent to
|$NVIM_LISTEN_ADDRESS| on startup, but may differ if the
latter is modified or unset. |serverstop()|
Read-only.
@ -2366,8 +2368,8 @@ char2nr({expr}[, {utf8}]) *char2nr()*
char2nr("ABC") returns 65
< When {utf8} is omitted or zero, the current 'encoding' is used.
Example for "utf-8": >
char2nr("á") returns 225
char2nr("á"[0]) returns 195
char2nr("á") returns 225
char2nr("á"[0]) returns 195
< With {utf8} set to 1, always treat as utf-8 characters.
A combining character is a separate character.
|nr2char()| does the opposite.
@ -5374,25 +5376,31 @@ server2client( {clientid}, {string}) *server2client()*
Example: >
:echo server2client(expand("<client>"), "HELLO")
<
serverlist() *serverlist()*
serverlist() *serverlist()*
Returns a list of available server names in a list.
When there are no servers an empty string is returned.
Example: >
:echo serverlist()
< *--serverlist*
The Vim command-line option `--serverlist` can be imitated: >
nvim --cmd "echo serverlist()" --cmd "q"
<
serverstart([{address}]) *serverstart()*
Opens a named pipe or TCP socket at {address} for clients to
connect to and returns {address}. If no address is given, it
is equivalent to: >
:call serverstart(tempname())
< |$NVIM_LISTEN_ADDRESS| is set to {address} if not already set.
*--servername*
The Vim command-line option `--servername` can be imitated: >
nvim --cmd "let g:server_addr = serverstart('foo')"
<
serverlisten([{address}]) *serverlisten()*
Opens a Unix or TCP socket at {address} for clients to connect
to and returns {address}. If no address is given, it is
equivalent to >
:call serverlisten(tempname())
< If |$NVIM_LISTEN_ADDRESS| is not set, it will be set to
{address}.
serverstop({address}) *serverstop()*
Closes the Unix or TCP socket at {address}. Does nothing if
{address} is empty, or does not refer to a server. If
{address} equals |$NVIM_LISTEN_ADDRESS|, the listen address
will be unset.
Closes the pipe or socket at {address}. Does nothing if
{address} is empty or invalid.
If |$NVIM_LISTEN_ADDRESS| is stopped it is unset.
If |v:servername| is stopped it is set to the next available
address returned by |serverlist()|.
setbufvar({expr}, {varname}, {val}) *setbufvar()*
Set option or local variable {varname} in buffer {expr} to

View File

@ -81,6 +81,8 @@ There are four ways to open msgpack-rpc streams to nvim:
>
:echo $NVIM_LISTEN_ADDRESS
<
See also |v:servername|.
4. Through a TCP/IP socket. To make nvim listen on a TCP/IP socket, set the
|$NVIM_LISTEN_ADDRESS| environment variable in a shell before starting:
>

View File

@ -56,11 +56,6 @@ The following command line arguments are available:
*--remote-tab-wait-silent*
--remote-tab-wait-silent Like --remote-wait-silent but open each file
in a new tabpage.
*--servername*
--servername {name} Become the server {name}. When used together
with one of the --remote commands: connect to
server {name} instead of the default (see
below).
*--remote-send*
--remote-send {keys} Send {keys} to server and exit. The {keys}
are not mapped. Special key names are
@ -69,9 +64,6 @@ The following command line arguments are available:
*--remote-expr*
--remote-expr {expr} Evaluate {expr} in server and print the result
on stdout.
*--serverlist*
--serverlist Output a list of server names.
Examples ~

View File

@ -365,7 +365,7 @@ static struct vimvar {
} vimvars[VV_LEN] =
{
/*
* The order here must match the VV_ defines in vim.h!
* The order here must match the VV_ defines in eval.h!
* Initializing a union does not work, leave tv.vval empty to get zero's.
*/
{VV_NAME("count", VAR_NUMBER), VV_COMPAT+VV_RO},
@ -13356,7 +13356,7 @@ static void f_serverlist(typval_T *argvars, typval_T *rettv)
static void f_serverstart(typval_T *argvars, typval_T *rettv)
{
rettv->v_type = VAR_STRING;
rettv->vval.v_string = NULL; // Will hold the address of the new server.
rettv->vval.v_string = NULL; // Address of the new server
if (check_restricted() || check_secure()) {
return;

View File

@ -28,13 +28,13 @@ typedef enum {
} ServerType;
typedef struct {
// The address of a pipe, or string value of a tcp address.
// Pipe/socket path, or TCP address string
char addr[ADDRESS_MAX_SIZE];
// Type of the union below
ServerType type;
// This is either a tcp server or unix socket(named pipe on windows)
// TCP server or unix socket (named pipe on Windows)
union {
struct {
uv_tcp_t handle;
@ -144,7 +144,7 @@ int server_start(const char *endpoint)
size_t addr_len = (size_t)(ip_end - addr);
if (addr_len > sizeof(ip) - 1) {
// Maximum length of an IP address buffer is 15(eg: 255.255.255.255)
// Maximum length of an IPv4 address buffer is 15 (eg: 255.255.255.255)
addr_len = sizeof(ip) - 1;
}
@ -245,7 +245,7 @@ void server_stop(char *endpoint)
// Trim to `ADDRESS_MAX_SIZE`
xstrlcpy(addr, endpoint, sizeof(addr));
int i = 0; // The index of the server whose address equals addr.
int i = 0; // Index of the server whose address equals addr.
for (; i < servers.ga_len; i++) {
server = ((Server **)servers.ga_data)[i];
if (strcmp(addr, server->addr) == 0) {