diff options
author | Lewis Russell <lewis6991@gmail.com> | 2024-01-15 19:49:08 +0000 |
---|---|---|
committer | Lewis Russell <lewis6991@gmail.com> | 2024-01-17 10:10:17 +0000 |
commit | 26835d8d9cf1312d2851b191fe859c6f62d9d9d4 (patch) | |
tree | f2dd9bf5c2283a62a91c67372f2cebd454c6c0a2 /test/client/uv_stream.lua | |
parent | 5a16d08a6389596c89691b45b06121b4814a089f (diff) | |
download | rneovim-26835d8d9cf1312d2851b191fe859c6f62d9d9d4.tar.gz rneovim-26835d8d9cf1312d2851b191fe859c6f62d9d9d4.tar.bz2 rneovim-26835d8d9cf1312d2851b191fe859c6f62d9d9d4.zip |
test: add type annotations
Diffstat (limited to 'test/client/uv_stream.lua')
-rw-r--r-- | test/client/uv_stream.lua | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/test/client/uv_stream.lua b/test/client/uv_stream.lua index 9e9a69e0a1..0540c44eb2 100644 --- a/test/client/uv_stream.lua +++ b/test/client/uv_stream.lua @@ -1,18 +1,28 @@ local uv = vim.uv +--- @class test.Stream +--- @field write fun(self, data: string|string[]) +--- @field read_start fun(self, cb: fun(chunk: string)) +--- @field read_stop fun(self) +--- @field close fun(self, signal?: string) + +--- @class vim.StdioStream : test.Stream +--- @field private _in uv.uv_pipe_t +--- @field private _out uv.uv_pipe_t local StdioStream = {} StdioStream.__index = StdioStream function StdioStream.open() local self = setmetatable({ - _in = uv.new_pipe(false), - _out = uv.new_pipe(false), + _in = assert(uv.new_pipe(false)), + _out = assert(uv.new_pipe(false)), }, StdioStream) self._in:open(0) self._out:open(1) return self end +--- @param data string|string[] function StdioStream:write(data) self._out:write(data) end @@ -35,11 +45,14 @@ function StdioStream:close() self._out:close() end +--- @class test.SocketStream : test.Stream +--- @field package _stream_error? string +--- @field package _socket uv.uv_pipe_t local SocketStream = {} SocketStream.__index = SocketStream function SocketStream.open(file) - local socket = uv.new_pipe(false) + local socket = assert(uv.new_pipe(false)) local self = setmetatable({ _socket = socket, _stream_error = nil, @@ -51,7 +64,7 @@ function SocketStream.open(file) end function SocketStream.connect(host, port) - local socket = uv.new_tcp() + local socket = assert(uv.new_tcp()) local self = setmetatable({ _socket = socket, _stream_error = nil, @@ -96,9 +109,20 @@ function SocketStream:close() uv.close(self._socket) end +--- @class test.ChildProcessStream : test.Stream +--- @field private _proc uv.uv_process_t +--- @field private _pid integer +--- @field private _child_stdin uv.uv_pipe_t +--- @field private _child_stdout uv.uv_pipe_t +--- @field status integer +--- @field signal integer local ChildProcessStream = {} ChildProcessStream.__index = ChildProcessStream +--- @param argv string[] +--- @param env string[]? +--- @param io_extra uv.uv_pipe_t? +--- @return test.ChildProcessStream function ChildProcessStream.spawn(argv, env, io_extra) local self = setmetatable({ _child_stdin = uv.new_pipe(false), @@ -106,13 +130,15 @@ function ChildProcessStream.spawn(argv, env, io_extra) _exiting = false, }, ChildProcessStream) local prog = argv[1] - local args = {} + local args = {} --- @type string[] for i = 2, #argv do args[#args + 1] = argv[i] end + --- @diagnostic disable-next-line:missing-fields self._proc, self._pid = uv.spawn(prog, { stdio = { self._child_stdin, self._child_stdout, 2, io_extra }, args = args, + --- @diagnostic disable-next-line:assign-type-mismatch env = env, }, function(status, signal) self.status = status |