Skip to content

Commit f9a9dec

Browse files
committed
add lua enum descriptions
1 parent 8b46c05 commit f9a9dec

6 files changed

Lines changed: 267 additions & 11 deletions

File tree

code/scripting/api/objs/enums.cpp

Lines changed: 252 additions & 10 deletions
Large diffs are not rendered by default.

code/scripting/api/objs/enums.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ struct enum_group_info {
292292

293293
bool is_deprecated_enum_name(const char* enum_name);
294294
std::optional<enum_group_info> get_enum_group_info(const char* enum_name);
295+
const char* get_enum_description(const char* enum_name);
295296

296297

297298
struct enum_h {

code/scripting/doc_html.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,12 @@ void output_html_doc(const ScriptingDocumentation& doc, const SCP_string& filena
622622
fprintf(fp, "<dd>%s</dd>", group_description.c_str());
623623
fputs("<dd><dl>", fp);
624624
for (const auto* enumeration : enum_groups[group_id]) {
625-
fprintf(fp, "<dd><span style=\"font-size: 0.92em;\">%s</span></dd>", enumeration->name.c_str());
625+
if (!enumeration->description.empty()) {
626+
fprintf(fp, "<dd><span style=\"font-size: 0.92em;\"><b>%s</b> -; %s</span></dd>",
627+
enumeration->name.c_str(), enumeration->description.c_str());
628+
} else {
629+
fprintf(fp, "<dd><span style=\"font-size: 0.92em;\"><b>%s</b></span></dd>", enumeration->name.c_str());
630+
}
626631
}
627632
fputs("</dl></dd>", fp);
628633
}

code/scripting/doc_luastub.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,9 @@ void output_luastub_doc(const ScriptingDocumentation& doc, const SCP_string& fil
626626
fputs("\n", fp);
627627
fprintf(fp, "--- %s: %s\n", enumeration.group_title.c_str(), enumeration.group_description.c_str());
628628
}
629+
if (!enumeration.description.empty()) {
630+
fprintf(fp, "--- %s\n", enumeration.description.c_str());
631+
}
629632
fprintf(fp, "--- @const %s\n", enumeration.name.c_str());
630633
fprintf(fp, "%s = enumeration\n", enumeration.name.c_str());
631634
}

code/scripting/lua.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,10 @@ void script_state::OutputLuaDocumentation(ScriptingDocumentation& doc,
323323
e.group_title = group->title;
324324
e.group_description = group->description;
325325
}
326+
const char* desc = get_enum_description(Enumerations[i].name);
327+
if (desc != nullptr) {
328+
e.description = desc;
329+
}
326330

327331
doc.enumerations.push_back(e);
328332
}

code/scripting/scripting_doc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ struct DocumentationEnum {
7272
SCP_string group_id;
7373
SCP_string group_title;
7474
SCP_string group_description;
75+
SCP_string description;
7576
};
7677

7778
struct DocumentationOption {

0 commit comments

Comments
 (0)