##// END OF EJS Templates
Make unicode backslach completion fuzzy and case insensitive...
Make unicode backslach completion fuzzy and case insensitive Ok, the fuzzy part is super simple. - candidates matching prefix - If no matches: names that contain the string - If no matches :whether each part of the string split on space is contained in the name of the unicode character. That is to say, `\GREEK OMICRON<tab>` will search whether both GREEK and and OMICRON (case insensitive) are available, in the worst case scenario This allows things like `\omicron` to give you proper suggestions. `\nu` will give you latex nu, `\greek nu` with match as the prefix of `GREEK NUMERAL ...` `\Nu` will match all the `... NUMERAL...` in unicode, but `\Nu greek` will limit the searches enough Mitigate #13514

File last commit:

r23666:e84c06c6
r27502:e65762ab
Show More
syspathcontext.py
62 lines | 1.7 KiB | text/x-python | PythonLexer
# encoding: utf-8
"""
Context managers for adding things to sys.path temporarily.
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008-2011 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
import sys
class appended_to_syspath(object):
"""A context for appending a directory to sys.path for a second."""
def __init__(self, dir):
self.dir = dir
def __enter__(self):
if self.dir not in sys.path:
sys.path.append(self.dir)
self.added = True
else:
self.added = False
def __exit__(self, type, value, traceback):
if self.added:
try:
sys.path.remove(self.dir)
except ValueError:
pass
# Returning False causes any exceptions to be re-raised.
return False
class prepended_to_syspath(object):
"""A context for prepending a directory to sys.path for a second."""
def __init__(self, dir):
self.dir = dir
def __enter__(self):
if self.dir not in sys.path:
sys.path.insert(0,self.dir)
self.added = True
else:
self.added = False
def __exit__(self, type, value, traceback):
if self.added:
try:
sys.path.remove(self.dir)
except ValueError:
pass
# Returning False causes any exceptions to be re-raised.
return False