validateInput method
Validate input before execution and permission checks.
Implementation
@override
ValidationResult validateInput(Map<String, dynamic> input) {
final action = input['action'] as String?;
if (action == null) {
return const ValidationResult.invalid('action is required');
}
if (![
'diagnostics',
'hover',
'definition',
'references',
'completions',
].contains(action)) {
return const ValidationResult.invalid(
'action must be diagnostics, hover, definition, references, or completions',
);
}
if (input['file_path'] == null) {
return const ValidationResult.invalid('file_path is required');
}
if (_positionActions.contains(action)) {
if (input['line'] == null || input['column'] == null) {
return ValidationResult.invalid(
'line and column are required for $action',
);
}
}
return const ValidationResult.valid();
}