##// END OF EJS Templates
completer update code-miror on the fly...
completer update code-miror on the fly Following @fperez advice, change the completer apparence to avoid user confusion. - Append what the user type in the completer in code-miror, (Almost) as if codemirror still have focus - distinguish between "fixed" completion part, which was sent to the kernel (now written in bold) and filtering one,handled only in JS,that the user can errase without dismissing the completer I changed the action of <Space> to dismiss the completer with what have already been typed and inserting a space instead of "picking" the currently hilighted option <Escape> will still dissmiss the completer and remove everything the user as typed since the completer invocation Note that while the completer is shown, code-mirror does not show any blinking cursor

File last commit:

r4755:c14b594e
r5637:5f3907c7
Show More
nested_context.py
50 lines | 1.5 KiB | text/x-python | PythonLexer
"""Backwards compatibility - we use contextlib.nested to support Python 2.6,
but it's removed in Python 3.2."""
# TODO : Remove this once we drop support for Python 2.6, and use
# "with a, b:" instead.
import sys
from contextlib import contextmanager
@contextmanager
def nested(*managers):
"""Combine multiple context managers into a single nested context manager.
This function has been deprecated in favour of the multiple manager form
of the with statement.
The one advantage of this function over the multiple manager form of the
with statement is that argument unpacking allows it to be
used with a variable number of context managers as follows:
with nested(*managers):
do_something()
"""
exits = []
vars = []
exc = (None, None, None)
try:
for mgr in managers:
exit = mgr.__exit__
enter = mgr.__enter__
vars.append(enter())
exits.append(exit)
yield vars
except:
exc = sys.exc_info()
finally:
while exits:
exit = exits.pop()
try:
if exit(*exc):
exc = (None, None, None)
except:
exc = sys.exc_info()
if exc != (None, None, None):
# Don't rely on sys.exc_info() still containing
# the right information. Another exception may
# have been raised and caught by an exit method
raise exc[0], exc[1], exc[2]