diff options
-rw-r--r-- | server/libs/lua53/io.lni | 24 | ||||
-rw-r--r-- | server/locale/en-US/libs/lua53/io.lni | 133 | ||||
-rw-r--r-- | server/src/matcher/hover.lua | 6 |
3 files changed, 146 insertions, 17 deletions
diff --git a/server/libs/lua53/io.lni b/server/libs/lua53/io.lni index a5325cd4..d34b78b9 100644 --- a/server/libs/lua53/io.lni +++ b/server/libs/lua53/io.lni @@ -32,7 +32,7 @@ optional = 'self' [[.returns]] name = 'suc' type = 'boolean' -default = 'true' +default = true optional = 'after' [[.returns]] name = 'type' @@ -55,6 +55,7 @@ type = {'string', 'FILE*'} optional = 'self' [[.returns]] type = 'FILE*' +optional = 'self' [lines] [[.args]] @@ -64,7 +65,6 @@ optional = 'after' [[.args]] name = 'mode' type = '...' -default = 'l' [[.returns]] type = 'function' returns = { @@ -78,16 +78,11 @@ name = 'mode' enum = 'n' [[.enums]] name = 'mode' -enum = 'n' -[[.enums]] -name = 'mode' -enum = 'i' -[[.enums]] -name = 'mode' enum = 'a' [[.enums]] name = 'mode' enum = 'l' +default = true [[.enums]] name = 'mode' enum = 'L' @@ -109,6 +104,7 @@ type = 'FILE*' [[.enums]] name = 'mode' enum = 'r' +default = true [[.enums]] name = 'mode' enum = 'w' @@ -136,9 +132,13 @@ name = 'mode' type = 'string' optional = 'self' default = 'r' +[[.returns]] +name = 'file' +type = 'FILE*' [[.enums]] name = 'mode' enum = 'r' +default = true [[.enums]] name = 'mode' enum = 'w' @@ -147,7 +147,6 @@ enum = 'w' [[.args]] name = 'mode' type = '...' -default = 'l' [[.returns]] type = {'string', 'number'} [[.enums]] @@ -155,16 +154,11 @@ name = 'mode' enum = 'n' [[.enums]] name = 'mode' -enum = 'n' -[[.enums]] -name = 'mode' -enum = 'i' -[[.enums]] -name = 'mode' enum = 'a' [[.enums]] name = 'mode' enum = 'l' +default = true [[.enums]] name = 'mode' enum = 'L' diff --git a/server/locale/en-US/libs/lua53/io.lni b/server/locale/en-US/libs/lua53/io.lni index a1d055db..496a573c 100644 --- a/server/locale/en-US/libs/lua53/io.lni +++ b/server/locale/en-US/libs/lua53/io.lni @@ -1 +1,132 @@ -[io] +[stdin] +description = 'standard input.' + +[stdout] +description = 'standard output.' + +[stderr] +description = 'standard error.' + +[close] +description = 'Close `file` or default output file.' + +[flush] +description = 'Saves any written data to default output file.' + +[input] +description = 'Sets `file` as the default input file.' + +[lines] +description = [[ +------ +```lua +for c in io.lines(filename, ...) do + body +end +``` +]] +[[.enums]] +name = 'mode' +enum = 'n' +description = 'Reads a numeral and returns it as number.' +[[.enums]] +name = 'mode' +enum = 'a' +description = 'Reads the whole file.' +[[.enums]] +name = 'mode' +enum = 'l' +description = 'Reads the next line skipping the end of line.' +[[.enums]] +name = 'mode' +enum = 'L' +description = 'Reads the next line keeping the end of line.' +[[.enums]] +name = 'mode' +code = 'number' +description = 'Reads a string with up to this number of bytes.' + +[open] +description = 'Opens a file, in the mode specified in the string mode.' +[[.enums]] +name = 'mode' +enum = 'r' +description = 'Read mode.' +[[.enums]] +name = 'mode' +enum = 'w' +description = 'Write mode.' +[[.enums]] +name = 'mode' +enum = 'a' +description = 'Append mode.' +[[.enums]] +name = 'mode' +enum = 'r+' +description = 'Update mode, all previous data is preserved.' +[[.enums]] +name = 'mode' +enum = 'w+' +description = 'Update mode, all previous data is erased.' +[[.enums]] +name = 'mode' +enum = 'a+' +description = 'Append update mode, previous data is preserved, writing is only allowed at the end of file.' + +[output] +description = 'Sets `file` as the default output file.' + +[popen] +description = 'Starts program prog in a separated process.' +[[.enums]] +name = 'mode' +enum = 'r' +description = 'Read data from this program by `file`.' +[[.enums]] +name = 'mode' +enum = 'w' +description = 'Write data to this program by `file`.' + +[read] +description = 'Reads the file file, according to the given formats, which specify what to read.' +[[.enums]] +name = 'mode' +enum = 'n' +description = 'Reads a numeral and returns it as number.' +[[.enums]] +name = 'mode' +enum = 'a' +description = 'Reads the whole file.' +[[.enums]] +name = 'mode' +enum = 'l' +description = 'Reads the next line skipping the end of line.' +[[.enums]] +name = 'mode' +enum = 'L' +description = 'Reads the next line keeping the end of line.' +[[.enums]] +name = 'mode' +code = 'number' +description = 'Reads a string with up to this number of bytes.' + +[tmpfile] +description = 'In case of success, returns a handle for a temporary file.' + +[type] +description = 'Checks whether obj is a valid file handle.' +[[.enums]] +name = 'type' +enum = 'file' +description = 'Is an open file handle.' +[[.enums]] +name = 'type' +enum = 'closed file' +description = 'Is a closed file handle.' +[[.enums]] +name = 'type' +code = 'nil' +description = 'Is not a file handle.' + +[write] +description = 'Writes the value of each of its arguments to default output file.' diff --git a/server/src/matcher/hover.lua b/server/src/matcher/hover.lua index 0db15bf8..497bc528 100644 --- a/server/src/matcher/hover.lua +++ b/server/src/matcher/hover.lua @@ -79,7 +79,11 @@ local function buildLibReturns(lib) if rtn.name then strs[#strs+1] = ('%s: '):format(rtn.name) end - strs[#strs+1] = rtn.type or 'any' + if type(rtn.type) == 'table' then + strs[#strs+1] = table.concat(rtn.type, '/') + else + strs[#strs+1] = rtn.type or 'any' + end if rtn.default then strs[#strs+1] = ('(%q)'):format(rtn.default) end |