Skip to content

Commit 83a71d2

Browse files
committed
Render enum/alias comments as markdown
1 parent 9d320a5 commit 83a71d2

2 files changed

Lines changed: 52 additions & 69 deletions

File tree

script/core/hover/description.lua

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -250,30 +250,31 @@ local function buildEnumChunk(docType, name, uri)
250250
local comment = tryDocClassComment(tp)
251251
if comment then
252252
for line in util.eachLine(comment) do
253-
lines[#lines+1] = ('-- %s'):format(line)
253+
lines[#lines+1] = line
254254
end
255255
end
256256
end
257257
if #enums == 0 then
258258
return nil
259259
end
260-
lines[#lines+1] = ('%s:'):format(name)
260+
lines[#lines+1] = ('**%s**:'):format(name)
261261
for _, enum in ipairs(enums) do
262-
local enumDes = (' %s %s'):format(
263-
(enum.default and '->')
264-
or (enum.additional and '+>')
265-
or ' |',
266-
vm.getInfer(enum):view(uri)
262+
local suffix = (enum.default and ' (default)')
263+
or (enum.additional and ' (additional)')
264+
or ''
265+
local enumDes = (' - `%s`%s'):format(
266+
vm.getInfer(enum):view(uri),
267+
suffix
267268
)
268269
if enum.comment then
269270
local first = true
270271
local len = #enumDes
271272
for comm in enum.comment:gmatch '[^\r\n]+' do
272273
if first then
273274
first = false
274-
enumDes = ('%s -- %s'):format(enumDes, comm)
275+
enumDes = ('%s %s'):format(enumDes, comm)
275276
else
276-
enumDes = ('%s\n%s -- %s'):format(enumDes, (' '):rep(len), comm)
277+
enumDes = ('%s\n%s %s'):format(enumDes, (' '):rep(len + 3), comm)
277278
end
278279
end
279280
end
@@ -391,7 +392,7 @@ local function getFunctionCommentMarkdown(source, raw)
391392
end
392393

393394
local enums = getBindEnums(source, docGroup)
394-
md:add('lua', enums)
395+
md:add('md', enums)
395396

396397
return md
397398
end
@@ -410,11 +411,11 @@ local function tryDocComment(source, raw)
410411
md:add('md', comment)
411412
if source.type == 'doc.alias' then
412413
local enums = buildEnumChunk(source, source.alias[1], guide.getUri(source))
413-
md:add('lua', enums)
414+
md:add('md', enums)
414415
end
415416
if source.type == 'doc.enum' then
416417
local enums = buildEnumChunk(source, source.enum[1], guide.getUri(source))
417-
md:add('lua', enums)
418+
md:add('md', enums)
418419
end
419420
local result = md:string()
420421
if result == '' then

test/crossfile/hover.lua

Lines changed: 39 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ TEST {
243243
244244
function mt:add(a, b)
245245
end
246-
246+
247247
return function ()
248248
return setmetatable({}, mt)
249249
end
@@ -400,11 +400,9 @@ function f(x: string|"选项1"|"选项2")
400400
401401
---
402402
403-
```lua
404-
x:
405-
| "选项1" -- 注释1
406-
-> "选项2" -- 注释2
407-
```]]
403+
**x**:
404+
- `"选项1"` — 注释1
405+
- `"选项2"` (default) — 注释2]]
408406
}
409407

410408
TEST {
@@ -429,11 +427,9 @@ function f(x: "选项1"|"选项2")
429427
430428
---
431429
432-
```lua
433-
x:
434-
| "选项1" -- 注释1
435-
-> "选项2" -- 注释2
436-
```]]
430+
**x**:
431+
- `"选项1"` — 注释1
432+
- `"选项2"` (default) — 注释2]]
437433
}
438434

439435
TEST {
@@ -459,11 +455,9 @@ function f()
459455
460456
---
461457
462-
```lua
463-
x:
464-
| "选项1" -- 注释1
465-
-> "选项2" -- 注释2
466-
```]]
458+
**x**:
459+
- `"选项1"` — 注释1
460+
- `"选项2"` (default) — 注释2]]
467461
}
468462

469463
TEST {
@@ -489,11 +483,9 @@ function f()
489483
490484
---
491485
492-
```lua
493-
return #1:
494-
| "选项1" -- 注释1
495-
-> "选项2" -- 注释2
496-
```]]
486+
**return #1**:
487+
- `"选项1"` — 注释1
488+
- `"选项2"` (default) — 注释2]]
497489
}
498490

499491
TEST {
@@ -717,11 +709,9 @@ function f(a: boolean)
717709
718710
@*param* `a` — xxx
719711
720-
```lua
721-
a:
722-
| true -- ttt
723-
| false -- fff
724-
```]]}
712+
**a**:
713+
- `true` — ttt
714+
- `false` — fff]]}
725715

726716
TEST {{ path = 'a.lua', content = '', }, {
727717
path = 'b.lua',
@@ -1020,13 +1010,11 @@ function f(p: 'a'|'b')
10201010
10211011
---
10221012
1023-
```lua
1024-
p:
1025-
| 'a' -- comment 1
1026-
-- comment 2
1027-
| 'b' -- comment 3
1028-
-- comment 4
1029-
```]]}
1013+
**p**:
1014+
- `'a'` — comment 1
1015+
comment 2
1016+
- `'b'` — comment 3
1017+
comment 4]]}
10301018

10311019
--TEST {{ path = 'a.lua', content = '', }, {
10321020
-- path = 'b.lua',
@@ -1243,23 +1231,21 @@ function f(p: 'a1'|'a2', ...'a3'|'a4')
12431231
12441232
---
12451233
1246-
```lua
1247-
p:
1248-
| 'a1'
1249-
| 'a2'
1234+
**p**:
1235+
- `'a1'`
1236+
- `'a2'`
12501237
1251-
...(param):
1252-
| 'a3'
1253-
| 'a4'
1238+
**...(param)**:
1239+
- `'a3'`
1240+
- `'a4'`
12541241
1255-
ret1:
1256-
| 'r1'
1257-
| 'r2'
1242+
**ret1**:
1243+
- `'r1'`
1244+
- `'r2'`
12581245
1259-
...(return):
1260-
| 'r3'
1261-
| 'r4'
1262-
```]]
1246+
**...(return)**:
1247+
- `'r3'`
1248+
- `'r4'`]]
12631249
}
12641250

12651251
TEST {
@@ -1510,11 +1496,9 @@ local x: 1|2
15101496
15111497
---
15121498
1513-
```lua
1514-
A:
1515-
| 1 -- comment1
1516-
| 2 -- comment2
1517-
```]]
1499+
**A**:
1500+
- `1` — comment1
1501+
- `2` — comment2]]
15181502
}
15191503

15201504
TEST {
@@ -1632,7 +1616,7 @@ TEST {
16321616
content = [[
16331617
---@alias someType
16341618
---| "#" # description
1635-
1619+
16361620
---@type someType
16371621
local <?someValue?>
16381622
]]
@@ -1644,10 +1628,8 @@ local someValue: "#"
16441628
16451629
---
16461630
1647-
```lua
1648-
someType:
1649-
| "#" -- description
1650-
```]]
1631+
**someType**:
1632+
- `"#"` — description]]
16511633
}
16521634

16531635
TEST { { path = 'a.lua', content = [[

0 commit comments

Comments
 (0)