diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2021-08-23 11:27:28 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2021-08-23 11:27:28 +0800 |
commit | 95ea163397963b52278b9eb70f2adfebe5490014 (patch) | |
tree | 8cd178749946547ff736b46a06bcaa2d79372fb0 /script | |
parent | 28e63e50c48126f2438d1ea5f5163352a27bfbcf (diff) | |
download | lua-language-server-95ea163397963b52278b9eb70f2adfebe5490014.zip |
resolve #586 improve showing multi comments at enums
Diffstat (limited to 'script')
-rw-r--r-- | script/core/hover/description.lua | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/script/core/hover/description.lua b/script/core/hover/description.lua index 9ec5cd72..fc220c74 100644 --- a/script/core/hover/description.lua +++ b/script/core/hover/description.lua @@ -166,13 +166,25 @@ local function buildEnumChunk(docType, name) end lines[#lines+1] = ('%s: %s'):format(name, table.concat(types)) for _, enum in ipairs(enums) do - lines[#lines+1] = (' %s %s%s'):format( - (enum.default and '->') + local enumDes = (' %s %s'):format( + (enum.default and '->') or (enum.additional and '+>') or ' |', - enum[1], - enum.comment and (' -- %s'):format(enum.comment) or '' + enum[1] ) + if enum.comment then + local first = true + local len = #enumDes + for comm in enum.comment:gmatch '[^\r\n]+' do + if first then + first = false + enumDes = ('%s -- %s'):format(enumDes, comm) + else + enumDes = ('%s\n%s -- %s'):format(enumDes, (' '):rep(len), comm) + end + end + end + lines[#lines+1] = enumDes end return table.concat(lines, '\n') end |