- from prompt_toolkit import prompt
- from prompt_toolkit.history import FileHistory
- from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
- from prompt_toolkit.completion import Completer, Completion
- import click
- from fuzzyfinder import fuzzyfinder
- SQLKeywords = ['select', 'from', 'insert', 'update', 'delete', 'drop']
- class SQLCompleter(Completer):
- def get_completions(self, document, complete_event):
- word_before_cursor = document.get_word_before_cursor(WORD=True)
- matches = fuzzyfinder(word_before_cursor, SQLKeywords)
- for m in matches:
- yield Completion(m, start_position=-len(word_before_cursor))
- while 1:
- user_input = prompt(u'SQL>',
- history=FileHistory('history.txt'),
- auto_suggest=AutoSuggestFromHistory(),
- completer=SQLCompleter(),
- )
- click.echo_via_pager(user_input)
Pygments
提示对象包实用于 Pygments 库。我们选择 Pygments 供给的 SqlLexer 并将其大年夜提示对象包传递给 API 。如今所有的用户输入都邑被算作 SQL 语句并且添上了色彩。
Pygments 是一个语法高亮库,内置支撑300多种说话。添加语法高亮使得应用法度榜样变成彩色的,可以赞助用户在履行 SQL 之前发明一些例如打字缺点或者无法匹配的引号和括号。
起首安装 Pygments
- pip install pygments
让我们用 pygments 给我们的 SQL 交互式说冥器添加色彩:

网友点评
精彩导读
科技快报
品牌展示