auto replace - with _

pull/2/head
fuwa 5 years ago
parent a994493199
commit a120963ac8

@ -70,6 +70,47 @@ final _theme = ThemeData
); );
const Set<String> _commands =
{
'alt_chain_info',
'bc_dyn_stat0s',
'check_blockchain_pruning',
'flush_txpool',
'hard_fork_info',
'hide_hr',
'in_peers',
'is_key_image_spent',
'limit_down',
'limit_up',
'mining_status',
'out_peers',
'output_histogram',
'pop_blocks',
'print_bc',
'print_block',
'print_cn',
'print_coinbase_tx_sum',
'print_height',
'print_net_stats',
'print_pl',
'print_pl_stats',
'print_pool',
'print_pool_sh',
'print_pool_stats',
'print_status',
'print_tx',
'prune_blockchain',
'relay_tx',
'set_log',
'show_hr',
'start_mining',
'start_save_graph',
'stop_daemon',
'stop_mining',
'stop_save_graph',
'sync_info',
};
final config = CryptoConfig final config = CryptoConfig
( (
'wownerod', 'wownerod',
@ -78,6 +119,7 @@ final config = CryptoConfig
70, 70,
_theme, _theme,
34568, 34568,
_commands,
[ [
'--prune-blockchain', '--prune-blockchain',
'--max-concurrency=1', '--max-concurrency=1',

@ -28,6 +28,7 @@ class CryptoConfig {
final int splashDelay; final int splashDelay;
final ThemeData theme; final ThemeData theme;
final int port; final int port;
final Set<String> commands;
final List<String> extraArgs; final List<String> extraArgs;
const CryptoConfig const CryptoConfig
( (
@ -37,6 +38,7 @@ class CryptoConfig {
this.splashDelay, this.splashDelay,
this.theme, this.theme,
this.port, this.port,
this.commands,
this.extraArgs, this.extraArgs,
); );
} }

@ -170,7 +170,27 @@ Widget terminalView(BuildContext context, String title, SyncedState state) {
border: InputBorder.none, border: InputBorder.none,
), ),
onFieldSubmitted: (v) { onFieldSubmitted: (v) {
final line = state.textController.text.trim(); String autoReplace(String x) {
final words = x.split(' ');
if (words.length == 0) {
return x;
}
final head = words.first;
final tail = words.sublist(1);
final guessHead = head.replaceAll('-', '_');
if (config.c.commands.contains(guessHead)) {
return [ guessHead, ...tail ].join(' ');
} else {
return x;
}
}
final _text = state.textController.text.trim();
final line = autoReplace(_text);
if (line.isNotEmpty) { if (line.isNotEmpty) {
log.finer('terminal input: ${line}'); log.finer('terminal input: ${line}');
state.appendInput(line); state.appendInput(line);