Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Lib/idlelib/editor.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
darwin = sys.platform == 'darwin'

class EditorWindow:
is_shell = False # PyShell overrides.
from idlelib.percolator import Percolator
from idlelib.colorizer import ColorDelegator, color_config
from idlelib.undo import UndoDelegator
Expand Down Expand Up @@ -80,7 +81,6 @@ def __init__(self, flist=None, filename=None, key=None, root=None):
self.recent_files_path = idleConf.userdir and os.path.join(
idleConf.userdir, 'recent-files.lst')

self.prompt_last_line = '' # Override in PyShell
self.text_frame = text_frame = Frame(top)
self.vbar = vbar = Scrollbar(text_frame, name='vbar')
width = idleConf.GetOption('main', 'EditorWindow', 'width', type='int')
Expand Down Expand Up @@ -1434,7 +1434,7 @@ def newline_and_indent_event(self, event):
# First need to find the last statement.
lno = index2line(text.index('insert'))
y = pyparse.Parser(self.indentwidth, self.tabwidth)
if not self.prompt_last_line:
if not self.is_shell:
for context in self.num_context_lines:
startat = max(lno - context, 1)
startatindex = repr(startat) + ".0"
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/hyperparser.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def index2line(index):
return int(float(index))
lno = index2line(text.index(index))

if not editwin.prompt_last_line:
if not editwin.is_shell:
for context in editwin.num_context_lines:
startat = max(lno - context, 1)
startatindex = repr(startat) + ".0"
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/idle_test/test_autocomplete.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def __init__(self, root, text):
self.text = text
self.indentwidth = 8
self.tabwidth = 8
self.prompt_last_line = '>>>' # Currently not used by autocomplete.
self.is_shell = True


class AutoCompleteTest(unittest.TestCase):
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/idle_test/test_calltip.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ class mock_Shell:
def __init__(self, text):
text.tag_prevrange = Mock(return_value=None)
self.text = text
self.prompt_last_line = ">>> "
self.is_shell = True
self.indentwidth = 4
self.tabwidth = 8

Expand Down
8 changes: 4 additions & 4 deletions Lib/idlelib/idle_test/test_hyperparser.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def __init__(self, text):
self.text = text
self.indentwidth = 8
self.tabwidth = 8
self.prompt_last_line = '>>>'
self.is_shell = True
self.num_context_lines = 50, 500, 1000

_build_char_in_string_func = EditorWindow._build_char_in_string_func
Expand Down Expand Up @@ -53,7 +53,7 @@ def setUp(self):

def tearDown(self):
self.text.delete('1.0', 'end')
self.editwin.prompt_last_line = '>>>'
self.editwin.is_shell = True

def get_parser(self, index):
"""
Expand All @@ -70,8 +70,8 @@ def test_init(self):
p = self.get_parser('1.5')
self.assertIn('precedes', str(ve.exception))

# test without ps1
self.editwin.prompt_last_line = ''
# test an editor
self.editwin.is_shell = False

# number of lines lesser than 50
p = self.get_parser('end')
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/idle_test/test_parenmatch.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def __init__(self, text):
self.text = text
self.indentwidth = 8
self.tabwidth = 8
self.prompt_last_line = '>>>' # Currently not used by parenmatch.
self.is_shell = True


class ParenMatchTest(unittest.TestCase):
Expand Down
2 changes: 1 addition & 1 deletion Lib/idlelib/pyshell.py
Original file line number Diff line number Diff line change
Expand Up @@ -852,6 +852,7 @@ def display_executing_dialog(self):


class PyShell(OutputWindow):
is_shell = True
from idlelib.squeezer import Squeezer

shell_title = "IDLE Shell"
Expand Down Expand Up @@ -909,7 +910,6 @@ def __init__(self, flist=None):
self.indentwidth = 4

self.sys_ps1 = sys.ps1 if hasattr(sys, 'ps1') else '>>>\n'
self.prompt_last_line = self.sys_ps1.split('\n')[-1]
self.prompt = self.sys_ps1 # Changes when debug active

text = self.text
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Fix calltips, parenthesis matching and auto-indent in the IDLE Shell after
output containing unbalanced quotes or parentheses.
Loading