diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2023-05-24 08:43:56 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-24 08:43:56 (GMT) |
commit | e561c09975bf67ad8bb67c56a81e30a9165bcc84 (patch) | |
tree | da94ba31879102eb4cf953e09001b679ca544f35 /Lib/idlelib/editor.py | |
parent | 426950993f6a39cdf3f6a3333ac8b518833c7e61 (diff) | |
download | cpython-e561c09975bf67ad8bb67c56a81e30a9165bcc84.zip cpython-e561c09975bf67ad8bb67c56a81e30a9165bcc84.tar.gz cpython-e561c09975bf67ad8bb67c56a81e30a9165bcc84.tar.bz2 |
gh-104719: IDLE - test existence of all tokenize references. (#104767)
Class editor.IndentSearcher contains all editor references to tokenize module.
Module io tokenize reference cover those other modules.
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Diffstat (limited to 'Lib/idlelib/editor.py')
-rw-r--r-- | Lib/idlelib/editor.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py index df36be87..69b27d0 100644 --- a/Lib/idlelib/editor.py +++ b/Lib/idlelib/editor.py @@ -1571,7 +1571,7 @@ class EditorWindow: # blocks are found). def guess_indent(self): - opener, indented = IndentSearcher(self.text, self.tabwidth).run() + opener, indented = IndentSearcher(self.text).run() if opener and indented: raw, indentsmall = get_line_indent(opener, self.tabwidth) raw, indentlarge = get_line_indent(indented, self.tabwidth) @@ -1609,15 +1609,10 @@ def get_line_indent(line, tabwidth): class IndentSearcher: + "Manage initial indent guess, returned by run method." - # .run() chews over the Text widget, looking for a block opener - # and the stmt following it. Returns a pair, - # (line containing block opener, line containing stmt) - # Either or both may be None. - - def __init__(self, text, tabwidth): + def __init__(self, text): self.text = text - self.tabwidth = tabwidth self.i = self.finished = 0 self.blkopenline = self.indentedline = None @@ -1633,7 +1628,8 @@ class IndentSearcher: def tokeneater(self, type, token, start, end, line, INDENT=tokenize.INDENT, NAME=tokenize.NAME, - OPENERS=('class', 'def', 'for', 'if', 'try', 'while')): + OPENERS=('class', 'def', 'for', 'if', 'match', 'try', + 'while', 'with')): if self.finished: pass elif type == NAME and token in OPENERS: @@ -1643,6 +1639,10 @@ class IndentSearcher: self.finished = 1 def run(self): + """Return 2 lines containing block opener and and indent. + + Either the indent line or both may be None. + """ try: tokens = tokenize.generate_tokens(self.readline) for token in tokens: @@ -1654,6 +1654,7 @@ class IndentSearcher: ### end autoindent code ### + def prepstr(s): """Extract the underscore from a string. |