Skip to content

Commit 727b9dd

Browse files
committed
Render enum/alias comments as markdown
1 parent 24b9faa commit 727b9dd

File tree

2 files changed

+52
-69
lines changed

2 files changed

+52
-69
lines changed

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
@@ -274,7 +274,7 @@ TEST {
274274
275275
function mt:add(a, b)
276276
end
277-
277+
278278
return function ()
279279
return setmetatable({}, mt)
280280
end
@@ -431,11 +431,9 @@ function f(x: string|"选项1"|"选项2")
431431
432432
---
433433
434-
```lua
435-
x:
436-
| "选项1" -- 注释1
437-
-> "选项2" -- 注释2
438-
```]]
434+
**x**:
435+
- `"选项1"` — 注释1
436+
- `"选项2"` (default) — 注释2]]
439437
}
440438

441439
TEST {
@@ -460,11 +458,9 @@ function f(x: "选项1"|"选项2")
460458
461459
---
462460
463-
```lua
464-
x:
465-
| "选项1" -- 注释1
466-
-> "选项2" -- 注释2
467-
```]]
461+
**x**:
462+
- `"选项1"` — 注释1
463+
- `"选项2"` (default) — 注释2]]
468464
}
469465

470466
TEST {
@@ -490,11 +486,9 @@ function f()
490486
491487
---
492488
493-
```lua
494-
x:
495-
| "选项1" -- 注释1
496-
-> "选项2" -- 注释2
497-
```]]
489+
**x**:
490+
- `"选项1"` — 注释1
491+
- `"选项2"` (default) — 注释2]]
498492
}
499493

500494
TEST {
@@ -520,11 +514,9 @@ function f()
520514
521515
---
522516
523-
```lua
524-
return #1:
525-
| "选项1" -- 注释1
526-
-> "选项2" -- 注释2
527-
```]]
517+
**return #1**:
518+
- `"选项1"` — 注释1
519+
- `"选项2"` (default) — 注释2]]
528520
}
529521

530522
TEST {
@@ -748,11 +740,9 @@ function f(a: boolean)
748740
749741
@*param* `a` — xxx
750742
751-
```lua
752-
a:
753-
| true -- ttt
754-
| false -- fff
755-
```]]}
743+
**a**:
744+
- `true` — ttt
745+
- `false` — fff]]}
756746

757747
TEST {{ path = 'a.lua', content = '', }, {
758748
path = 'b.lua',
@@ -1051,13 +1041,11 @@ function f(p: 'a'|'b')
10511041
10521042
---
10531043
1054-
```lua
1055-
p:
1056-
| 'a' -- comment 1
1057-
-- comment 2
1058-
| 'b' -- comment 3
1059-
-- comment 4
1060-
```]]}
1044+
**p**:
1045+
- `'a'` — comment 1
1046+
comment 2
1047+
- `'b'` — comment 3
1048+
comment 4]]}
10611049

10621050
--TEST {{ path = 'a.lua', content = '', }, {
10631051
-- path = 'b.lua',
@@ -1274,23 +1262,21 @@ function f(p: 'a1'|'a2', ...'a3'|'a4')
12741262
12751263
---
12761264
1277-
```lua
1278-
p:
1279-
| 'a1'
1280-
| 'a2'
1265+
**p**:
1266+
- `'a1'`
1267+
- `'a2'`
12811268
1282-
...(param):
1283-
| 'a3'
1284-
| 'a4'
1269+
**...(param)**:
1270+
- `'a3'`
1271+
- `'a4'`
12851272
1286-
ret1:
1287-
| 'r1'
1288-
| 'r2'
1273+
**ret1**:
1274+
- `'r1'`
1275+
- `'r2'`
12891276
1290-
...(return):
1291-
| 'r3'
1292-
| 'r4'
1293-
```]]
1277+
**...(return)**:
1278+
- `'r3'`
1279+
- `'r4'`]]
12941280
}
12951281

12961282
TEST {
@@ -1541,11 +1527,9 @@ local x: 1|2
15411527
15421528
---
15431529
1544-
```lua
1545-
A:
1546-
| 1 -- comment1
1547-
| 2 -- comment2
1548-
```]]
1530+
**A**:
1531+
- `1` — comment1
1532+
- `2` — comment2]]
15491533
}
15501534

15511535
TEST {
@@ -1663,7 +1647,7 @@ TEST {
16631647
content = [[
16641648
---@alias someType
16651649
---| "#" # description
1666-
1650+
16671651
---@type someType
16681652
local <?someValue?>
16691653
]]
@@ -1675,10 +1659,8 @@ local someValue: "#"
16751659
16761660
---
16771661
1678-
```lua
1679-
someType:
1680-
| "#" -- description
1681-
```]]
1662+
**someType**:
1663+
- `"#"` — description]]
16821664
}
16831665

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

0 commit comments

Comments
 (0)