Skip to content

Commit 4e9c7f2

Browse files
add examples to flags
1 parent 2e58861 commit 4e9c7f2

5 files changed

Lines changed: 30 additions & 22 deletions

File tree

Code/FlagSystem/Flags/Flag.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ public readonly record struct Argument(
1515
string Name,
1616
string Description,
1717
Func<string[], Result> Handler,
18-
bool IsRequired
18+
bool IsRequired,
19+
string Example
1920
) {
2021
public Result AddArgument(string[] values) => Handler(values);
2122
}

Code/FlagSystem/Flags/FunctionFlag.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ public class FunctionFlag : Flag
3939
_expectedVarTokens.Add(token);
4040
return true;
4141
},
42-
true
42+
true,
43+
"-- argument $name"
4344
)
4445
];
4546

Code/FlagSystem/Flags/OnCustomTriggerFlag.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ public class OnCustomTriggerFlag : Flag
3030
ScriptsBoundToTrigger.AddOrInitListWithKey(_trigger, ScriptName);
3131
return true;
3232
},
33-
true
33+
true,
34+
"!-- OnCustomTrigger myTrigger"
3435
);
3536

3637
public override Argument[] Arguments => [];

Code/FlagSystem/Flags/OnEventFlag.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,11 @@ public class OnEventFlag : Flag
1313
private Safe<string> _event;
1414

1515
public override string Description =>
16-
"Binds a script to an in-game event. When the event happens, the script will execute. " +
17-
"Events can sometimes also carry information of their own, ";
16+
"""
17+
Binds a script to an in-game event.
18+
When the event happens, the script will execute.
19+
Find events using 'serhelp events' command.
20+
""";
1821

1922
public override Argument? InlineArgument => new(
2023
"eventName",
@@ -37,7 +40,8 @@ public class OnEventFlag : Flag
3740

3841
return true;
3942
},
40-
true
43+
true,
44+
"!-- OnEvent RoundStarted"
4145
);
4246

4347
public override Result OnScriptRunning(Script scr)

Code/Plugin/Commands/HelpSystem/DocsProvider.cs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -232,38 +232,39 @@ private static string GetFlagInfo(string flagName)
232232
.Select(arg => $"-- {arg.Name} ...")
233233
.JoinStrings("\n");
234234

235-
StringBuilder argumentDescription = new();
235+
StringBuilder argDesc = new();
236236
if (flag.InlineArgument.HasValue)
237237
{
238-
argumentDescription.AppendLine($" Inline argument '{flag.InlineArgument.Value.Name}':");
239-
argumentDescription.AppendLine($" > {flag.InlineArgument.Value.Description}");
240-
argumentDescription.AppendLine();
238+
argDesc.AppendLine(
239+
(flag.InlineArgument.Value.IsRequired ? "> Required" : "> Optional")
240+
+ $" inline argument '{flag.InlineArgument.Value.Name}':"
241+
);
242+
argDesc.AppendLine($"{flag.InlineArgument.Value.Description}");
243+
argDesc.AppendLine("> Example usage");
244+
argDesc.AppendLine(flag.InlineArgument.Value.Example);
245+
argDesc.AppendLine();
241246
}
242247

243248
foreach (var arg in flag.Arguments)
244249
{
245-
argumentDescription.AppendLine($" Additional argument '{arg.Name}':");
246-
argumentDescription.AppendLine($" > {arg.Description}");
247-
248-
if (!arg.IsRequired)
249-
{
250-
argumentDescription.AppendLine($" > This argument is not required for the flag to operate");
251-
}
252-
253-
argumentDescription.AppendLine();
250+
argDesc.AppendLine((arg.IsRequired ? "> Required" : "> Optional") + $" argument '{arg.Name}':");
251+
argDesc.AppendLine($"{arg.Description}");
252+
argDesc.AppendLine("> Example usage");
253+
argDesc.AppendLine(arg.Example);
254+
argDesc.AppendLine();
254255
}
255256

256257
return
257258
$"""
258259
===== {flagName} =====
259-
> {flag.Description}
260+
{flag.Description}
260261
261262
Usage:
262263
!-- {flagName} {inlineArgumentUsage}
263264
{argumentsUsage}
264265
265-
{(argumentDescription.Length > 0 ? "Arguments:" : "")}
266-
{argumentDescription}
266+
{(argDesc.Length > 0 ? "+++ Arguments +++" : "")}
267+
{argDesc}
267268
""";
268269
}
269270

0 commit comments

Comments
 (0)