From d0c7622dc63a8f54761fb7b66804f48f4dbc203e Mon Sep 17 00:00:00 2001 From: chris Date: Sun, 18 Jul 2021 15:46:36 +0200 Subject: [PATCH] style input --- promcli.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/promcli.py b/promcli.py index 9454f76..ebf0ddc 100644 --- a/promcli.py +++ b/promcli.py @@ -2,14 +2,18 @@ import netrc from datetime import datetime -from tabulate import tabulate import click import requests +from tabulate import tabulate from prompt_toolkit import print_formatted_text as print from prompt_toolkit import HTML -from prompt_toolkit import prompt as prompt -from prompt_toolkit.completion import WordCompleter +from prompt_toolkit import prompt +from prompt_toolkit.completion import ThreadedCompleter, FuzzyWordCompleter +from prompt_toolkit.lexers import PygmentsLexer +from prompt_toolkit.styles import style_from_pygments_cls +from pygments.lexers.promql import PromQLLexer +from pygments.styles.solarized import SolarizedLightStyle class promcli(object): @@ -76,9 +80,20 @@ def cli(ctx, user, password, promhost, use_netrc): @click.pass_context def query(ctx): promclio = ctx.obj['promcli'] - query = prompt("query: ", completer=WordCompleter(promclio.get_series())) - params = prompt("{ ", completer=WordCompleter(promclio.get_labels(query))) - print(HTML(f"Querying {query}{{{params}}}")) + query = prompt( + "query: ", + completer=FuzzyWordCompleter(promclio.get_series()), + lexer=PygmentsLexer(PromQLLexer), + style=style_from_pygments_cls(SolarizedLightStyle), + ) + params = prompt( + "{ ", + completer=FuzzyWordCompleter(promclio.get_labels(query)), + complete_in_thread=True, + lexer=PygmentsLexer(PromQLLexer), + style=style_from_pygments_cls(SolarizedLightStyle), + ) + print(HTML(f"Querying {query}{{{params}}}")) print(promclio.format_query(promclio.get_query(f"{query}{{{params}}}")))