Skip to content

Commit 08adbca

Browse files
authored
Improve Lua docs for enums and fields. (beyond-all-reason#1978)
* Update `@field` annotations in LuaConstGL * Use lua-doc-extractor 2 * Update `@field` annotations in LuaConstCMD * Update `@field` annotations in LuaConstCOB * Update `@field` annotations in LuaConstCMDTYPE * Remove leading `@section` on LuaConstGL * Upload generated lua library during site-build For debugging * Remove ignore dirs from doc .luarc.json * site README: Delete old generated library in example * Improve lua doc enum template * Remove hr from various doc templates * Update lua-doc-extractor to v3
1 parent 0393177 commit 08adbca

13 files changed

+504
-554
lines changed

.github/workflows/generate-lua-library.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
- name: Generate Lua library
2727
working-directory: recoil
2828
run: |
29-
npm install -g lua-doc-extractor@1
29+
npm install -g lua-doc-extractor@3
3030
lua-doc-extractor rts/Lua/*.cpp \
3131
--dest rts/Lua/library/generated \
3232
--repo https://github.com/${{ github.repository }}/blob/${{ github.sha }}

.github/workflows/publish-site.yml

+7-1
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,16 @@ jobs:
2424
# NOTE: This step is duplicated in `generate-lua-library.yml`
2525
- name: Generate Lua library
2626
run: |
27-
npm install -g lua-doc-extractor@1
27+
npm install -g lua-doc-extractor@3
2828
lua-doc-extractor rts/Lua/*.cpp \
2929
--dest rts/Lua/library/generated \
3030
--repo https://github.com/${{ github.repository }}/blob/${{ github.sha }}
31+
# Upload the Lua library artifact for debugging.
32+
- name: Upload Lua Library artifact
33+
uses: actions/upload-artifact@v4
34+
with:
35+
name: ${{github.run_id}}-library
36+
path: rts/Lua/library/
3137
- name: Install emmylua_doc_cli
3238
run: |
3339
cargo install emmylua_doc_cli

doc/emmlua-doc-cli-template/lua_enum_template.tl

+10-6
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,14 @@ permalink: lua-api/types/{{ type_name }}
1515
{{ description }}
1616
{% endif %}
1717

18-
```cpp
19-
enum {{ type_name }} {
20-
{% for field in fields -%}
21-
{{ field.name }} = {{ field.value }}, {{ field.description }}
22-
{% endfor %}
23-
}
18+
{% for field in fields -%}
19+
20+
### {{ field.name }}
21+
22+
```lua
23+
{{ type_name }}.{{ field.name }} = {{ field.value }}
2424
```
25+
26+
{{ field.description }}
27+
28+
{% endfor %}

doc/emmlua-doc-cli-template/lua_global_template.tl

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ permalink: lua-api/globals/{{ global_name }}
1010
{% if description %}
1111
{{ description }}
1212
{% endif %}
13-
---
13+
1414
{% if methods %}
1515
## methods
16-
---
16+
1717
{% for method in methods %}
1818
### {{ method.name }}
19-
---
19+
2020
{{ method.display }}
2121

2222
{% if method.description %}
@@ -27,10 +27,10 @@ permalink: lua-api/globals/{{ global_name }}
2727

2828
{% if fields %}
2929
## fields
30-
---
30+
3131
{% for field in fields %}
3232
### {{ field.name }}
33-
---
33+
3434
{{ field.display }}
3535

3636
{% if field.description %}

doc/emmlua-doc-cli-template/lua_global_template_simple.tl

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ permalink: lua-api/globals/{{ global_name }}
77

88
# global {{ global_name }}
99

10-
---
1110
{% if display %}
1211
{{ display }}
1312
{% endif %}

doc/emmlua-doc-cli-template/lua_module_template.tl

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ permalink: lua-api/modules/{{ module_name }}
1010
{% if description %}
1111
{{ description }}
1212
{% endif %}
13-
---
13+
1414
{% if methods %}
1515
## methods
16-
---
16+
1717
{% for method in methods %}
1818
### {{ method.name }}
19-
---
19+
2020
{{ method.display }}
2121

2222
{% if method.description %}
@@ -27,10 +27,10 @@ permalink: lua-api/modules/{{ module_name }}
2727

2828
{% if fields %}
2929
## fields
30-
---
30+
3131
{% for field in fields %}
3232
### {{ field.name }}
33-
---
33+
3434
{{ field.display }}
3535

3636
{% if field.description %}

doc/emmlua-doc-cli-template/lua_type_template.tl

+5-5
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ permalink: lua-api/types/{{ type_name }}
1717
{% if description %}
1818
{{ description }}
1919
{% endif %}
20-
---
20+
2121
{% if methods %}
2222
## methods
23-
---
23+
2424
{% for method in methods %}
2525
### {{ method.name }}
26-
---
26+
2727
{{ method.display }}
2828

2929
{% if method.description %}
@@ -34,10 +34,10 @@ permalink: lua-api/types/{{ type_name }}
3434

3535
{% if fields %}
3636
## fields
37-
---
37+
3838
{% for field in fields %}
3939
### {{ field.name }}
40-
---
40+
4141
{{ field.display }}
4242

4343
{% if field.description %}

doc/site/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Navigate to http://localhost:4000/spring
2020
Have [emmylua_doc_cli](https://github.com/CppCXY/emmylua-analyzer-rust/tree/main/crates/emmylua_doc_cli) and [lua-doc-extractor](https://github.com/rhys-vdw/lua-doc-extractor) installed and available in `$PATH`.
2121

2222
```bash
23+
rm -rf rts/Lua/library/generated &&
2324
lua-doc-extractor rts/Lua/*.cpp --dest rts/Lua/library/generated &&
2425
emmylua_doc_cli \
2526
-i rts/Lua/library/ \

rts/Lua/LuaConstCMD.cpp

+62-72
Original file line numberDiff line numberDiff line change
@@ -9,149 +9,139 @@
99
#include "Sim/Units/CommandAI/Command.h"
1010

1111

12-
/******************************************************************************
13-
* Command constants
14-
* @see rts/Lua/LuaConstCMD.cpp
15-
******************************************************************************/
16-
1712
/***
13+
* Command constants.
1814
* @enum CMD
19-
* @field FIRESTATE_NONE -1
20-
* @field MOVESTATE_NONE -1
21-
* @field STOP 0
22-
* @field MOVESTATE_HOLDPOS 0
23-
* @field FIRESTATE_HOLDFIRE 0
24-
* @field INSERT 1
25-
* @field MOVESTATE_MANEUVER 1
26-
* @field FIRESTATE_RETURNFIRE 1
27-
* @field WAITCODE_TIME 1
28-
* @field WAITCODE_DEATH 2
29-
* @field MOVESTATE_ROAM 2
30-
* @field REMOVE 2
31-
* @field FIRESTATE_FIREATWILL 2
32-
* @field FIRESTATE_FIREATNEUTRAL 3
33-
* @field WAITCODE_SQUAD 3
34-
* @field OPT_META 4
35-
* @field WAITCODE_GATHER 4
36-
* @field WAIT 5
37-
* @field TIMEWAIT 6
38-
* @field DEATHWAIT 7
39-
* @field OPT_INTERNAL 8
40-
* @field SQUADWAIT 8
41-
* @field GATHERWAIT 9
42-
* @field MOVE 10
43-
* @field PATROL 15
44-
* @field FIGHT 16
45-
* @field OPT_RIGHT 16
46-
* @field LOOPBACKATTACK 20
47-
* @field ATTACK 20
48-
* @field AREA_ATTACK 21
49-
* @field GUARD 25
50-
* @field OPT_SHIFT 32
51-
* @field GROUPSELECT 35
52-
* @field GROUPADD 36
53-
* @field GROUPCLEAR 37
54-
* @field REPAIR 40
55-
* @field FIRE_STATE 45
56-
* @field MOVE_STATE 50
57-
* @field SETBASE 55
58-
* @field INTERNAL 60
59-
* @field OPT_CTRL 64
60-
* @field SELFD 65
61-
* @field SET_WANTED_MAX_SPEED 70
62-
* @field LOAD_UNITS 75
63-
* @field LOAD_ONTO 76
64-
* @field UNLOAD_UNITS 80
65-
* @field UNLOAD_UNIT 81
66-
* @field ONOFF 85
67-
* @field RECLAIM 90
68-
* @field CLOAK 95
69-
* @field STOCKPILE 100
70-
* @field MANUALFIRE 105
71-
* @field DGUN 105
72-
* @field RESTORE 110
73-
* @field REPEAT 115
74-
* @field TRAJECTORY 120
75-
* @field RESURRECT 125
76-
* @field OPT_ALT 128
77-
* @field CAPTURE 130
78-
* @field AUTOREPAIRLEVEL 135
79-
* @field IDLEMODE 145
8015
*/
8116

82-
8317
bool LuaConstCMD::PushEntries(lua_State* L)
8418
{
19+
/*** @field CMD.OPT_ALT 128 */
8520
LuaPushNamedNumber(L, "OPT_ALT", ALT_KEY);
21+
/*** @field CMD.OPT_CTRL 64 */
8622
LuaPushNamedNumber(L, "OPT_CTRL", CONTROL_KEY);
23+
/*** @field CMD.OPT_SHIFT 32 */
8724
LuaPushNamedNumber(L, "OPT_SHIFT", SHIFT_KEY);
25+
/*** @field CMD.OPT_RIGHT 16 */
8826
LuaPushNamedNumber(L, "OPT_RIGHT", RIGHT_MOUSE_KEY);
27+
/*** @field CMD.OPT_INTERNAL 8 */
8928
LuaPushNamedNumber(L, "OPT_INTERNAL", INTERNAL_ORDER);
29+
/*** @field CMD.OPT_META 4 */
9030
LuaPushNamedNumber(L, "OPT_META", META_KEY);
9131

32+
/*** @field CMD.MOVESTATE_NONE -1 */
9233
LuaPushNamedNumber(L, "MOVESTATE_NONE" , MOVESTATE_NONE );
34+
/*** @field CMD.MOVESTATE_HOLDPOS 0 */
9335
LuaPushNamedNumber(L, "MOVESTATE_HOLDPOS" , MOVESTATE_HOLDPOS );
36+
/*** @field CMD.MOVESTATE_MANEUVER 1 */
9437
LuaPushNamedNumber(L, "MOVESTATE_MANEUVER", MOVESTATE_MANEUVER);
38+
/*** @field CMD.MOVESTATE_ROAM 2 */
9539
LuaPushNamedNumber(L, "MOVESTATE_ROAM" , MOVESTATE_ROAM );
9640

41+
/*** @field CMD.FIRESTATE_NONE -1 */
9742
LuaPushNamedNumber(L, "FIRESTATE_NONE" , FIRESTATE_NONE );
43+
/*** @field CMD.FIRESTATE_HOLDFIRE 0 */
9844
LuaPushNamedNumber(L, "FIRESTATE_HOLDFIRE" , FIRESTATE_HOLDFIRE );
45+
/*** @field CMD.FIRESTATE_RETURNFIRE 1 */
9946
LuaPushNamedNumber(L, "FIRESTATE_RETURNFIRE" , FIRESTATE_RETURNFIRE );
47+
/*** @field CMD.FIRESTATE_FIREATWILL 2 */
10048
LuaPushNamedNumber(L, "FIRESTATE_FIREATWILL" , FIRESTATE_FIREATWILL );
49+
/*** @field CMD.FIRESTATE_FIREATNEUTRAL 3 */
10150
LuaPushNamedNumber(L, "FIRESTATE_FIREATNEUTRAL", FIRESTATE_FIREATNEUTRAL);
10251

52+
/*** @field CMD.WAITCODE_TIME 1 */
10353
LuaPushNamedNumber(L, "WAITCODE_TIME", CMD_WAITCODE_TIMEWAIT);
54+
/*** @field CMD.WAITCODE_DEATH 2 */
10455
LuaPushNamedNumber(L, "WAITCODE_DEATH", CMD_WAITCODE_DEATHWAIT);
56+
/*** @field CMD.WAITCODE_SQUAD 3 */
10557
LuaPushNamedNumber(L, "WAITCODE_SQUAD", CMD_WAITCODE_SQUADWAIT);
58+
/*** @field CMD.WAITCODE_GATHER 4 */
10659
LuaPushNamedNumber(L, "WAITCODE_GATHER", CMD_WAITCODE_GATHERWAIT);
10760

10861
#define PUSH_CMD(cmd) LuaInsertDualMapPair(L, #cmd, CMD_ ## cmd);
10962

63+
/*** @field CMD.STOP 0 */
11064
PUSH_CMD(STOP);
65+
/*** @field CMD.INSERT 1 */
11166
PUSH_CMD(INSERT);
67+
/*** @field CMD.REMOVE 2 */
11268
PUSH_CMD(REMOVE);
69+
/*** @field CMD.WAIT 5 */
11370
PUSH_CMD(WAIT);
71+
/*** @field CMD.TIMEWAIT 6 */
11472
PUSH_CMD(TIMEWAIT);
73+
/*** @field CMD.DEATHWAIT 7 */
11574
PUSH_CMD(DEATHWAIT);
75+
/*** @field CMD.SQUADWAIT 8 */
11676
PUSH_CMD(SQUADWAIT);
77+
/*** @field CMD.GATHERWAIT 9 */
11778
PUSH_CMD(GATHERWAIT);
79+
/*** @field CMD.MOVE 10 */
11880
PUSH_CMD(MOVE);
81+
/*** @field CMD.PATROL 15 */
11982
PUSH_CMD(PATROL);
83+
/*** @field CMD.FIGHT 16 */
12084
PUSH_CMD(FIGHT);
85+
/*** @field CMD.ATTACK 20 */
12186
PUSH_CMD(ATTACK);
87+
/*** @field CMD.AREA_ATTACK 21 */
12288
PUSH_CMD(AREA_ATTACK);
89+
/*** @field CMD.GUARD 25 */
12390
PUSH_CMD(GUARD);
91+
/*** @field CMD.GROUPSELECT 35 */
12492
PUSH_CMD(GROUPSELECT);
93+
/*** @field CMD.GROUPADD 36 */
12594
PUSH_CMD(GROUPADD);
95+
/*** @field CMD.GROUPCLEAR 37 */
12696
PUSH_CMD(GROUPCLEAR);
97+
/*** @field CMD.REPAIR 40 */
12798
PUSH_CMD(REPAIR);
99+
/*** @field CMD.FIRE_STATE 45 */
128100
PUSH_CMD(FIRE_STATE);
101+
/*** @field CMD.MOVE_STATE 50 */
129102
PUSH_CMD(MOVE_STATE);
103+
/*** @field CMD.SETBASE 55 */
130104
PUSH_CMD(SETBASE);
105+
/*** @field CMD.INTERNAL 60 */
131106
PUSH_CMD(INTERNAL);
107+
/*** @field CMD.SELFD 65 */
132108
PUSH_CMD(SELFD);
109+
/*** @field CMD.LOAD_UNITS 75 */
133110
PUSH_CMD(LOAD_UNITS);
111+
/*** @field CMD.LOAD_ONTO 76 */
134112
PUSH_CMD(LOAD_ONTO);
113+
/*** @field CMD.UNLOAD_UNITS 80 */
135114
PUSH_CMD(UNLOAD_UNITS);
115+
/*** @field CMD.UNLOAD_UNIT 81 */
136116
PUSH_CMD(UNLOAD_UNIT);
117+
/*** @field CMD.ONOFF 85 */
137118
PUSH_CMD(ONOFF);
119+
/*** @field CMD.RECLAIM 90 */
138120
PUSH_CMD(RECLAIM);
121+
/*** @field CMD.CLOAK 95 */
139122
PUSH_CMD(CLOAK);
123+
/*** @field CMD.STOCKPILE 100 */
140124
PUSH_CMD(STOCKPILE);
125+
/*** @field CMD.MANUALFIRE 105 */
141126
PUSH_CMD(MANUALFIRE);
127+
/*** @field CMD.DGUN 105 */
142128
LuaInsertDualMapPair(L, "DGUN", CMD_MANUALFIRE); // backward compatibility (TODO: find a way to print a warning when used!)
129+
/*** @field CMD.RESTORE 110 */
143130
PUSH_CMD(RESTORE);
131+
/*** @field CMD.REPEAT 115 */
144132
PUSH_CMD(REPEAT);
133+
/*** @field CMD.TRAJECTORY 120 */
145134
PUSH_CMD(TRAJECTORY);
135+
/*** @field CMD.RESURRECT 125 */
146136
PUSH_CMD(RESURRECT);
137+
/*** @field CMD.CAPTURE 130 */
147138
PUSH_CMD(CAPTURE);
139+
/*** @field CMD.AUTOREPAIRLEVEL 135 */
148140
PUSH_CMD(AUTOREPAIRLEVEL);
141+
/*** @field CMD.LOOPBACKATTACK 20 */
149142
LuaInsertDualMapPair(L, "LOOPBACKATTACK", CMD_ATTACK); // backward compatibility (TODO: find a way to print a warning when used!)
143+
/*** @field CMD.IDLEMODE 145 */
150144
PUSH_CMD(IDLEMODE);
151145

152146
return true;
153-
}
154-
155-
156-
/******************************************************************************/
157-
/******************************************************************************/
147+
}

0 commit comments

Comments
 (0)