diff options
Diffstat (limited to 'format.py')
-rwxr-xr-x | format.py | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -68,7 +68,8 @@ def wrap_text_block(text, max_width, forbid_dangling_chars=False, return lines -def format_hint(hint, hint_id, langs, max_width=MAX_WIDTH, indent=INDENT): +def format_hint(hint, hint_id, langs, max_width=MAX_WIDTH, indent=INDENT, + continuation_char=' '): lines = [] for lang in langs: @@ -100,6 +101,8 @@ def format_hint(hint, hint_id, langs, max_width=MAX_WIDTH, indent=INDENT): lines.extend(' ' * indent + l for l in block) + lines = [continuation_char + l[1:] if l[0] == ' ' else l for l in lines] + return '\n'.join(lines) hints = json.load((here / 'hints.json').open()) @@ -107,7 +110,9 @@ hints = json.load((here / 'hints.json').open()) @click.command() @click.option('-i', '--hint-id', default='-1', type=click.types.INT, show_default=True, help='which hint to format (-1 for random)') -def main(hint_id): +@click.option('-c', '--continuation-char', default=' ', type=click.types.STRING, + show_default=True, help='how to start indented lines') +def main(hint_id, continuation_char): if hint_id == -1: [(hint_id, hint)] = random.sample([*hints.items()], 1) else: @@ -118,7 +123,8 @@ def main(hint_id): print("No such hint!", file=sys.stderr) return sys.exit(1) - print(format_hint(hint, hint_id, [*hint['name'].keys()])) + print(format_hint(hint, hint_id, [*hint['name'].keys()], + continuation_char=continuation_char[0])) if __name__ == '__main__': main() |