# Copyright (C) 2008-2011 Dejan Muhamedagic # Copyright (C) 2013 Kristoffer Gronlund # See COPYING for license information. from . import command from . import completers from . import config from . import options _yesno = completers.choice(['yes', 'no']) _legacy_map = { 'editor': ('core', 'editor'), 'pager': ('core', 'pager'), 'user': ('core', 'user'), 'skill_level': ('core', 'skill_level'), 'sort_elements': ('core', 'sort_elements'), 'check_frequency': ('core', 'check_frequency'), 'check_mode': ('core', 'check_mode'), 'wait': ('core', 'wait'), 'add_quotes': ('core', 'add_quotes'), 'manage_children': ('core', 'manage_children'), 'force': ('core', 'force'), 'debug': ('core', 'debug'), 'ptest': ('core', 'ptest'), 'dotty': ('core', 'dotty'), 'dot': ('core', 'dot'), 'output': ('color', 'style'), 'colorscheme': ('color', 'colorscheme'), } def _legacy_set_pref(name, value): 'compatibility with old versions' name = name.replace('-', '_') if name == 'colorscheme': return # TODO opt = _legacy_map.get(name) if opt: config.set_option(opt[0], opt[1], value) def _getprefs(opt): 'completer for legacy options' opt = opt.replace('-', '_') if opt == 'colorscheme': return ('black', 'blue', 'green', 'cyan', 'red', 'magenta', 'yellow', 'white', 'normal') opt = _legacy_map.get(opt) if opt: return config.complete(*opt) return [] def _set_completer(args): opt = args[-1] opts = opt.split('.') if len(opts) != 2: return [] return config.complete(*opts) class CliOptions(command.UI): ''' Manage user preferences ''' name = "options" @command.completers(completers.choice(config.get_all_options()), _set_completer) def do_set(self, context, option, value): '''usage: set