M PyShell.py

M rpc.py

SF Bug 629987: Idle not printing prompts following SyntaxError
This commit is contained in:
Kurt B. Kaiser 2002-11-30 06:18:00 +00:00
parent a59ef7bbe0
commit 6e44cc2369
2 changed files with 20 additions and 17 deletions

View file

@ -1,6 +1,7 @@
#! /usr/bin/env python #! /usr/bin/env python
import os import os
import os.path
import sys import sys
import string import string
import getopt import getopt
@ -24,7 +25,6 @@ from UndoDelegator import UndoDelegator
from OutputWindow import OutputWindow from OutputWindow import OutputWindow
from configHandler import idleConf from configHandler import idleConf
import idlever import idlever
import os.path
import rpc import rpc
import RemoteDebugger import RemoteDebugger
@ -417,6 +417,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
except (OverflowError, SyntaxError): except (OverflowError, SyntaxError):
self.tkconsole.resetoutput() self.tkconsole.resetoutput()
InteractiveInterpreter.showsyntaxerror(self, filename) InteractiveInterpreter.showsyntaxerror(self, filename)
self.tkconsole.showprompt()
else: else:
self.runcode(code) self.runcode(code)
@ -458,23 +459,24 @@ class ModifiedInterpreter(InteractiveInterpreter):
""" """
text = self.tkconsole.text text = self.tkconsole.text
stuff = self.unpackerror() stuff = self.unpackerror()
if not stuff: if stuff:
msg, lineno, offset, line = stuff
if lineno == 1:
pos = "iomark + %d chars" % (offset-1)
else:
pos = "iomark linestart + %d lines + %d chars" % \
(lineno-1, offset-1)
text.tag_add("ERROR", pos)
text.see(pos)
char = text.get(pos)
if char and char in IDENTCHARS:
text.tag_add("ERROR", pos + " wordstart", pos)
self.tkconsole.resetoutput()
self.write("SyntaxError: %s\n" % str(msg))
else:
self.tkconsole.resetoutput() self.tkconsole.resetoutput()
InteractiveInterpreter.showsyntaxerror(self, filename) InteractiveInterpreter.showsyntaxerror(self, filename)
return self.tkconsole.showprompt()
msg, lineno, offset, line = stuff
if lineno == 1:
pos = "iomark + %d chars" % (offset-1)
else:
pos = "iomark linestart + %d lines + %d chars" % (lineno-1,
offset-1)
text.tag_add("ERROR", pos)
text.see(pos)
char = text.get(pos)
if char and char in IDENTCHARS:
text.tag_add("ERROR", pos + " wordstart", pos)
self.tkconsole.resetoutput()
self.write("SyntaxError: %s\n" % str(msg))
def unpackerror(self): def unpackerror(self):
type, value, tb = sys.exc_info() type, value, tb = sys.exc_info()

View file

@ -90,7 +90,7 @@ objecttable = {}
class SocketIO: class SocketIO:
debugging = 0 debugging = False
def __init__(self, sock, objtable=None, debugging=None): def __init__(self, sock, objtable=None, debugging=None):
self.mainthread = threading.currentThread() self.mainthread = threading.currentThread()
@ -189,6 +189,7 @@ class SocketIO:
def asyncreturn(self, seq): def asyncreturn(self, seq):
response = self.getresponse(seq) response = self.getresponse(seq)
self.debug("asyncreturn:", response)
return self.decoderesponse(response) return self.decoderesponse(response)
def decoderesponse(self, response): def decoderesponse(self, response):