From f9e3bb2e5ff40a693dc2c9356715bcc3705bb556 Mon Sep 17 00:00:00 2001 From: gnuxie Date: Sat, 14 Dec 2024 14:41:14 +0000 Subject: [PATCH] Fix interface-manager badArgument hint. This was printing arguments as their JSON serialized representation rather than their text presentation. It also couldn't handle missing arguments. We also verified that writing the protection name wrong for the commands will give you a message saying that the protection doesn't exist, rather than showing the help command. --- src/commands/interface-manager/MatrixHelpRenderer.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/commands/interface-manager/MatrixHelpRenderer.tsx b/src/commands/interface-manager/MatrixHelpRenderer.tsx index d7188493..f955f2f2 100644 --- a/src/commands/interface-manager/MatrixHelpRenderer.tsx +++ b/src/commands/interface-manager/MatrixHelpRenderer.tsx @@ -163,14 +163,12 @@ function formattedArgumentHint(error: ArgumentParseError): string { error.partialCommand.stream.getPosition() ); let commandContext = "Command context:"; - for (const designator of error.partialCommand.designator) { - commandContext += ` ${designator}`; - } for (const argument of argumentsUpToError) { - commandContext += ` ${JSON.stringify(argument)}`; + commandContext += ` ${TextPresentationRenderer.render(argument)}`; } - const badArgument = ` ${TextPresentationRenderer.render(error.partialCommand.stream.peekItem())}\n${Array(commandContext.length + 1).join(" ")} ^ expected ${printPresentationSchema(error.parameter.acceptor)} here`; - return commandContext + badArgument; + const badArgument = error.partialCommand.stream.peekItem(); + const badArgumentHint = ` ${badArgument === undefined ? "undefined" : TextPresentationRenderer.render(badArgument)}\n${Array(commandContext.length + 1).join(" ")} ^ expected ${printPresentationSchema(error.parameter.acceptor)} here`; + return commandContext + badArgumentHint; } export async function reactToEventWithResult(