Resolve the command and arguments for a script based on its file extension.
Custom runners (keyed by extension) take priority over built-in defaults.
The runner string is split on whitespace: first token is the command,
remaining tokens are prefix args inserted before the script path.
Resolve the command and arguments for a script based on its file extension. Custom runners (keyed by extension) take priority over built-in defaults. The runner string is split on whitespace: first token is the command, remaining tokens are prefix args inserted before the script path.