nixos/lua-lsp/meta/template/io.lua

171 lines
3.7 KiB
Lua

---@meta
---#DES 'io'
---@class iolib
---#DES 'io.stdin'
---@field stdin file*
---#DES 'io.stdout'
---@field stdout file*
---#DES 'io.stderr'
---@field stderr file*
io = {}
---@alias openmode
---|>'"r"' # ---#DESTAIL 'openmode.r'
---| '"w"' # ---#DESTAIL 'openmode.w'
---| '"a"' # ---#DESTAIL 'openmode.a'
---| '"r+"' # ---#DESTAIL 'openmode.r+'
---| '"w+"' # ---#DESTAIL 'openmode.w+'
---| '"a+"' # ---#DESTAIL 'openmode.a+'
---| '"rb"' # ---#DESTAIL 'openmode.rb'
---| '"wb"' # ---#DESTAIL 'openmode.wb'
---| '"ab"' # ---#DESTAIL 'openmode.ab'
---| '"r+b"' # ---#DESTAIL 'openmode.r+b'
---| '"w+b"' # ---#DESTAIL 'openmode.w+b'
---| '"a+b"' # ---#DESTAIL 'openmode.a+b'
---#DES 'io.close'
---@param file? file*
---@return boolean? suc
---@return exitcode? exitcode
---@return integer? code
function io.close(file) end
---#DES 'io.flush'
function io.flush() end
---#DES 'io.input'
---@overload fun():file*
---@param file string|file*
function io.input(file) end
---#DES 'io.lines'
---@param filename string?
---@param ... readmode
---@return fun():any, ...
function io.lines(filename, ...) end
---#DES 'io.open'
---@param filename string
---@param mode? openmode
---@return file*?
---@return string? errmsg
---@nodiscard
function io.open(filename, mode) end
---#DES 'io.output'
---@overload fun():file*
---@param file string|file*
function io.output(file) end
---@alias popenmode
---| '"r"' # ---#DESTAIL 'popenmode.r'
---| '"w"' # ---#DESTAIL 'popenmode.w'
---#DES 'io.popen'
---@param prog string
---@param mode? popenmode
---@return file*?
---@return string? errmsg
function io.popen(prog, mode) end
---#DES 'io.read'
---@param ... readmode
---@return any
---@return any ...
---@nodiscard
function io.read(...) end
---#DES 'io.tmpfile'
---@return file*
---@nodiscard
function io.tmpfile() end
---@alias filetype
---| '"file"' # ---#DESTAIL 'filetype.file'
---| '"closed file"' # ---#DESTAIL 'filetype.closed file'
---| 'nil' # ---#DESTAIL 'filetype.nil'
---#DES 'io.type'
---@param file file*
---@return filetype
---@nodiscard
function io.type(file) end
---#DES 'io.write'
---@return file*
---@return string? errmsg
function io.write(...) end
---#DES 'file'
---@class file*
local file = {}
---@alias readmode integer|string
---#if VERSION >= 5.3 then
---| '"n"' # ---#DESTAIL 'readmode.n'
---| '"a"' # ---#DESTAIL 'readmode.a'
---|>'"l"' # ---#DESTAIL 'readmode.l'
---| '"L"' # ---#DESTAIL 'readmode.L'
---#else
---| '"*n"' # ---#DESTAIL 'readmode.n'
---| '"*a"' # ---#DESTAIL 'readmode.a'
---|>'"*l"' # ---#DESTAIL 'readmode.l'
---#if JIT then
---| '"*L"' # ---#DESTAIL 'readmode.L'
---#end
---#end
---@alias exitcode '"exit"'|'"signal"'
---#DES 'file:close'
---@return boolean? suc
---@return exitcode? exitcode
---@return integer? code
function file:close() end
---#DES 'file:flush'
function file:flush() end
---#DES 'file:lines'
---@param ... readmode
---@return fun():any, ...
function file:lines(...) end
---#DES 'file:read'
---@param ... readmode
---@return any
---@return any ...
---@nodiscard
function file:read(...) end
---@alias seekwhence
---| '"set"' # ---#DESTAIL 'seekwhence.set'
---|>'"cur"' # ---#DESTAIL 'seekwhence.cur'
---| '"end"' # ---#DESTAIL 'seekwhence.end'
---#DES 'file:seek'
---@param whence? seekwhence
---@param offset? integer
---@return integer offset
---@return string? errmsg
function file:seek(whence, offset) end
---@alias vbuf
---| '"no"' # ---#DESTAIL 'vbuf.no'
---| '"full"' # ---#DESTAIL 'vbuf.full'
---| '"line"' # ---#DESTAIL 'vbuf.line'
---#DES 'file:setvbuf'
---@param mode vbuf
---@param size? integer
function file:setvbuf(mode, size) end
---#DES 'file:write'
---@param ... string|number
---@return file*?
---@return string? errmsg
function file:write(...) end
return io