summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/libs/lua53/io.lni24
-rw-r--r--server/locale/en-US/libs/lua53/io.lni133
-rw-r--r--server/src/matcher/hover.lua6
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