execute method
Execute the command.
Implementation
@override
Future<CommandResult> execute(String args, ToolUseContext context) async {
final arg = args.trim().toLowerCase();
if (arg.isEmpty) {
return TextCommandResult(
'Current theme: ${getCurrentTheme()}\n'
'Usage: /theme <name> or /theme list',
);
}
if (arg == 'list') {
final current = getCurrentTheme();
final buffer = StringBuffer();
buffer.writeln('Available themes:');
for (final t in _availableThemes) {
final marker = t == current ? ' (current)' : '';
buffer.writeln(' $t$marker');
}
return TextCommandResult(buffer.toString());
}
if (!_availableThemes.contains(arg)) {
return TextCommandResult(
'Unknown theme: $arg\n'
'Available: ${_availableThemes.join(", ")}',
);
}
setTheme(arg);
return TextCommandResult('Theme changed to: $arg');
}