summaryrefslogtreecommitdiff
path: root/script-beta
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2019-12-09 15:37:40 +0800
committer最萌小汐 <sumneko@hotmail.com>2019-12-09 15:37:40 +0800
commit729073ec3619cde7c6be8102bc6e390f83d0dffd (patch)
tree7c2c2ea734e1d9421ceec99a9005f1cfdcea66f0 /script-beta
parentfc3dbc4a1fb36f243991bd70bf9104bc750f000f (diff)
downloadlua-language-server-729073ec3619cde7c6be8102bc6e390f83d0dffd.zip
过hover测试
Diffstat (limited to 'script-beta')
-rw-r--r--script-beta/core/hover/return.lua2
-rw-r--r--script-beta/utility.lua12
2 files changed, 12 insertions, 2 deletions
diff --git a/script-beta/core/hover/return.lua b/script-beta/core/hover/return.lua
index a4d3b989..e10f9416 100644
--- a/script-beta/core/hover/return.lua
+++ b/script-beta/core/hover/return.lua
@@ -8,7 +8,7 @@ local function asLibrary(source)
local returns = {}
for _, rtn in ipairs(source.returns) do
local name = rtn.name
- local tp = rtn.type
+ local tp = rtn.type or 'any'
if name then
returns[#returns+1] = ('%s: %s'):format(name, tp)
else
diff --git a/script-beta/utility.lua b/script-beta/utility.lua
index c9defebc..9eaeb955 100644
--- a/script-beta/utility.lua
+++ b/script-beta/utility.lua
@@ -401,15 +401,23 @@ local esc = {
function m.viewString(str, quo)
if not quo then
- if not str:find("'", 1, true) and str:find('"', 1, true) then
+ if str:find('[\r\n]') then
+ quo = '[['
+ elseif not str:find("'", 1, true) and str:find('"', 1, true) then
quo = "'"
else
quo = '"'
end
end
if quo == "'" then
+ str = str:gsub('[\000-\008\011-\012\014-\031\127]', function (char)
+ return ('\\%03d'):format(char:byte())
+ end)
return quo .. str:gsub([=[['\r\n]]=], esc) .. quo
elseif quo == '"' then
+ str = str:gsub('[\000-\008\011-\012\014-\031\127]', function (char)
+ return ('\\%03d'):format(char:byte())
+ end)
return quo .. str:gsub([=[["\r\n]]=], esc) .. quo
else
if str:find '\r' then
@@ -418,12 +426,14 @@ function m.viewString(str, quo)
local eqnum = #quo - 2
local fsymb = ']' .. ('='):rep(eqnum) .. ']'
if not str:find(fsymb, 1, true) then
+ str = str:gsub('[\000-\008\011-\012\014-\031\127]', '')
return quo .. str .. fsymb
end
for i = 0, 10 do
local fsymb = ']' .. ('='):rep(i) .. ']'
if not str:find(fsymb, 1, true) then
local ssymb = '[' .. ('='):rep(i) .. '['
+ str = str:gsub('[\000-\008\011-\012\014-\031\127]', '')
return ssymb .. str .. fsymb
end
end