summaryrefslogtreecommitdiffstats
path: root/Mac/Tools/IDE/PyEdit.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Tools/IDE/PyEdit.py')
-rw-r--r--Mac/Tools/IDE/PyEdit.py42
1 files changed, 23 insertions, 19 deletions
diff --git a/Mac/Tools/IDE/PyEdit.py b/Mac/Tools/IDE/PyEdit.py
index 7274a1e..fc8503a 100644
--- a/Mac/Tools/IDE/PyEdit.py
+++ b/Mac/Tools/IDE/PyEdit.py
@@ -15,7 +15,7 @@ import imp
import sys
import string
import marshal
-import regex
+import re
try:
import Wthreading
@@ -25,7 +25,8 @@ else:
haveThreading = Wthreading.haveThreading
_scriptuntitledcounter = 1
-_wordchars = string.letters + string.digits + "_"
+# _wordchars = string.letters + string.digits + "_"
+_wordchars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'
runButtonLabels = ["Run all", "Stop!"]
@@ -553,7 +554,6 @@ class Editor(W.Window):
if indent == 1:
classname = ''
alllines = string.split(alltext, '\r')
- identifieRE_match = _identifieRE.match
for i in range(selfirstline - 1, -1, -1):
line = alllines[i]
if line[:6] == 'class ':
@@ -673,7 +673,6 @@ class Editor(W.Window):
def getclasslist(self):
from string import find, strip
- import re
methodRE = re.compile(r"\r[ \t]+def ")
findMethod = methodRE.search
editor = self.editgroup.editor
@@ -715,7 +714,6 @@ class Editor(W.Window):
offsetToLine = editor.ted.WEOffsetToLine
getLineRange = editor.ted.WEGetLineRange
append = classlist.append
- identifieRE_match = _identifieRE.match
for pos, tag in list:
lineno = offsetToLine(pos)
lineStart, lineEnd = getLineRange(lineno)
@@ -794,14 +792,13 @@ def _makewholewordpattern(word):
# first, escape special regex chars
for esc in "\\[].*^+$?":
word = _escape(word, esc)
- import regex
notwordcharspat = '[^' + _wordchars + ']'
- pattern = '\(' + word + '\)'
+ pattern = '(' + word + ')'
if word[0] in _wordchars:
pattern = notwordcharspat + pattern
if word[-1] in _wordchars:
pattern = pattern + notwordcharspat
- return regex.compile(pattern)
+ return re.compile(pattern)
class SearchEngine:
@@ -935,9 +932,9 @@ class SearchEngine:
while 1:
if self.parms["wholeword"]:
wholewordRE = _makewholewordpattern(find)
- wholewordRE.search(text, pos)
- if wholewordRE.regs:
- pos = wholewordRE.regs[1][0]
+ match = wholewordRE.search(text, pos)
+ if match:
+ pos = match.start(1)
else:
pos = -1
else:
@@ -997,9 +994,9 @@ class SearchEngine:
selstart, selend = min(selstart, selend), max(selstart, selend)
if self.parms["wholeword"]:
wholewordRE = _makewholewordpattern(find)
- wholewordRE.search(text, selend)
- if wholewordRE.regs:
- pos = wholewordRE.regs[1][0]
+ match = wholewordRE.search(text, selend)
+ if match:
+ pos = match.start(1)
else:
pos = -1
else:
@@ -1009,9 +1006,9 @@ class SearchEngine:
return 1
elif self.parms["wrap"]:
if self.parms["wholeword"]:
- wholewordRE.search(text, 0)
- if wholewordRE.regs:
- pos = wholewordRE.regs[1][0]
+ match = wholewordRE.search(text, 0)
+ if match:
+ pos = match.start(1)
else:
pos = -1
else:
@@ -1169,12 +1166,19 @@ def execstring(pytext, globals, locals, filename="<string>", debugging=0,
PyDebugger.stop()
-_identifieRE = regex.compile("[A-Za-z_][A-Za-z_0-9]*")
+_identifieRE = re.compile("[A-Za-z_][A-Za-z_0-9]*")
+
+def identifieRE_match(str):
+ match = _identifieRE.match(str)
+ if not match:
+ return -1
+ return match.end()
def _filename_as_modname(fname):
if fname[-3:] == '.py':
modname = fname[:-3]
- if _identifieRE.match(modname) == len(modname):
+ match = _identifieRE.match(modname)
+ if match and match.start() == 0 and match.end() == len(modname):
return string.join(string.split(modname, '.'), '_')
def findeditor(topwindow, fromtop = 0):