diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2012-06-03 09:55:32 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2012-06-03 09:55:32 (GMT) |
commit | 862d13a30f36d01404cec5c0553c66c89c8c8f2a (patch) | |
tree | 24a17d88fcd2085e95a2a973d4f4927bb0bbb02b /Lib/idlelib | |
parent | e606e238ab1476251ef377710442315017e4eb86 (diff) | |
download | cpython-862d13a30f36d01404cec5c0553c66c89c8c8f2a.zip cpython-862d13a30f36d01404cec5c0553c66c89c8c8f2a.tar.gz cpython-862d13a30f36d01404cec5c0553c66c89c8c8f2a.tar.bz2 |
Issue #14937: Perform auto-completion of filenames in strings even for non-ASCII filenames.
Diffstat (limited to 'Lib/idlelib')
-rw-r--r-- | Lib/idlelib/AutoComplete.py | 11 | ||||
-rw-r--r-- | Lib/idlelib/AutoCompleteWindow.py | 9 | ||||
-rw-r--r-- | Lib/idlelib/NEWS.txt | 6 |
3 files changed, 24 insertions, 2 deletions
diff --git a/Lib/idlelib/AutoComplete.py b/Lib/idlelib/AutoComplete.py index 4e17325..1298d9f 100644 --- a/Lib/idlelib/AutoComplete.py +++ b/Lib/idlelib/AutoComplete.py @@ -124,13 +124,20 @@ class AutoComplete: curline = self.text.get("insert linestart", "insert") i = j = len(curline) if hp.is_in_string() and (not mode or mode==COMPLETE_FILES): + # Find the beginning of the string + # fetch_completions will look at the file system to determine whether the + # string value constitutes an actual file name + # XXX could consider raw strings here and unescape the string value if it's + # not raw. self._remove_autocomplete_window() mode = COMPLETE_FILES - while i and curline[i-1] in FILENAME_CHARS: + # Find last separator or string start + while i and curline[i-1] not in "'\"" + SEPS: i -= 1 comp_start = curline[i:j] j = i - while i and curline[i-1] in FILENAME_CHARS + SEPS: + # Find string start + while i and curline[i-1] not in "'\"": i -= 1 comp_what = curline[i:j] elif hp.is_in_code() and (not mode or mode==COMPLETE_ATTRIBUTES): diff --git a/Lib/idlelib/AutoCompleteWindow.py b/Lib/idlelib/AutoCompleteWindow.py index 1ad8d15..0477746 100644 --- a/Lib/idlelib/AutoCompleteWindow.py +++ b/Lib/idlelib/AutoCompleteWindow.py @@ -354,6 +354,15 @@ class AutoCompleteWindow: # A modifier key, so ignore return + elif event.char: + # Regular character with a non-length-1 keycode + self._change_start(self.start + event.char) + self.lasttypedstart = self.start + self.listbox.select_clear(0, int(self.listbox.curselection()[0])) + self.listbox.select_set(self._binary_search(self.start)) + self._selection_changed() + return "break" + else: # Unknown event, close the window and let it through. self.hide_window() diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index a6b06b4..334b0c2 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -1,3 +1,9 @@ +What's New in IDLE 3.2.4? +========================= + +- Issue #14937: Perform auto-completion of filenames in strings even for + non-ASCII filenames. + What's New in IDLE 3.2.3? ========================= |