##// END OF EJS Templates
Shaperilio/autoreload verbosity (#13774)...
Shaperilio/autoreload verbosity (#13774) Worked on three things: 1. More descriptive parameter names for `%autoreload`; `now`, `off`, `explicit`, `all`, `complete`. (This last one could probably use a better name, but I couldn't think of anything better based on the message in 1d3018a93e98ad55f41d4419f835b738de80e1b7) 2. New optional arguments for `%autoreload` allow displaying the names of modules that are reloaded. Use `--print` or `-p` to use `print` statements, or `--log` / `-l` to log at `INFO` level. 3. `%aimport` can parse whitelist/blacklist modules on the same line, e.g. `%aimport os, -math` now works. `%autoreload` and will also now raise a `ValueError` if the parameter is invalid. I suppose a bit more verification could be done for input to `%aimport`....

File last commit:

r28074:875ff239
r28121:0725b4e7 merge
Show More
auto_match.py
104 lines | 3.0 KiB | text/x-python | PythonLexer
Matthias Bussonnier
add docs
r28030 """
krassowski
Allow to customize shortcuts
r28074 Utilities function for keybinding with prompt toolkit.
Matthias Bussonnier
add docs
r28030
krassowski
Allow to customize shortcuts
r28074 This will be bound to specific key press and filter modes,
Matthias Bussonnier
add docs
r28030 like whether we are in edit mode, and whether the completer is open.
"""
krassowski
Restore shortcuts in documentation, define identifiers
r28010 import re
from prompt_toolkit.key_binding import KeyPressEvent
def parenthesis(event: KeyPressEvent):
"""Auto-close parenthesis"""
event.current_buffer.insert_text("()")
event.current_buffer.cursor_left()
def brackets(event: KeyPressEvent):
"""Auto-close brackets"""
event.current_buffer.insert_text("[]")
event.current_buffer.cursor_left()
def braces(event: KeyPressEvent):
"""Auto-close braces"""
event.current_buffer.insert_text("{}")
event.current_buffer.cursor_left()
def double_quote(event: KeyPressEvent):
"""Auto-close double quotes"""
event.current_buffer.insert_text('""')
event.current_buffer.cursor_left()
def single_quote(event: KeyPressEvent):
"""Auto-close single quotes"""
event.current_buffer.insert_text("''")
event.current_buffer.cursor_left()
def docstring_double_quotes(event: KeyPressEvent):
"""Auto-close docstring (double quotes)"""
event.current_buffer.insert_text('""""')
event.current_buffer.cursor_left(3)
def docstring_single_quotes(event: KeyPressEvent):
"""Auto-close docstring (single quotes)"""
event.current_buffer.insert_text("''''")
event.current_buffer.cursor_left(3)
def raw_string_parenthesis(event: KeyPressEvent):
"""Auto-close parenthesis in raw strings"""
matches = re.match(
r".*(r|R)[\"'](-*)",
event.current_buffer.document.current_line_before_cursor,
)
krassowski
Fix mypy job, fix issues detected by mypy
r28011 dashes = matches.group(2) if matches else ""
krassowski
Restore shortcuts in documentation, define identifiers
r28010 event.current_buffer.insert_text("()" + dashes)
event.current_buffer.cursor_left(len(dashes) + 1)
def raw_string_bracket(event: KeyPressEvent):
"""Auto-close bracker in raw strings"""
matches = re.match(
r".*(r|R)[\"'](-*)",
event.current_buffer.document.current_line_before_cursor,
)
krassowski
Fix mypy job, fix issues detected by mypy
r28011 dashes = matches.group(2) if matches else ""
krassowski
Restore shortcuts in documentation, define identifiers
r28010 event.current_buffer.insert_text("[]" + dashes)
event.current_buffer.cursor_left(len(dashes) + 1)
def raw_string_braces(event: KeyPressEvent):
"""Auto-close braces in raw strings"""
matches = re.match(
r".*(r|R)[\"'](-*)",
event.current_buffer.document.current_line_before_cursor,
)
krassowski
Fix mypy job, fix issues detected by mypy
r28011 dashes = matches.group(2) if matches else ""
krassowski
Restore shortcuts in documentation, define identifiers
r28010 event.current_buffer.insert_text("{}" + dashes)
event.current_buffer.cursor_left(len(dashes) + 1)
def skip_over(event: KeyPressEvent):
krassowski
Allow to customize shortcuts
r28074 """Skip over automatically added parenthesis/quote.
krassowski
Restore shortcuts in documentation, define identifiers
r28010
krassowski
Allow to customize shortcuts
r28074 (rather than adding another parenthesis/quote)"""
krassowski
Restore shortcuts in documentation, define identifiers
r28010 event.current_buffer.cursor_right()
def delete_pair(event: KeyPressEvent):
"""Delete auto-closed parenthesis"""
event.current_buffer.delete()
event.current_buffer.delete_before_cursor()
Matthias Bussonnier
Reformat and move some mapping to global location.
r28032
auto_match_parens = {"(": parenthesis, "[": brackets, "{": braces}
auto_match_parens_raw_string = {
"(": raw_string_parenthesis,
"[": raw_string_bracket,
"{": raw_string_braces,
}