Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
12d71392
Commit
12d71392
authored
Nov 02, 2001
by
Just van Rossum
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
some support for syntax coloring, disabled for now
parent
311533d1
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
149 additions
and
42 deletions
+149
-42
Mac/Tools/IDE/PyEdit.py
Mac/Tools/IDE/PyEdit.py
+12
-7
Mac/Tools/IDE/Wtext.py
Mac/Tools/IDE/Wtext.py
+137
-35
No files found.
Mac/Tools/IDE/PyEdit.py
View file @
12d71392
...
...
@@ -96,7 +96,7 @@ class Editor(W.Window):
W
.
Window
.
__init__
(
self
,
bounds
,
self
.
title
,
minsize
=
(
330
,
120
),
tabbable
=
0
)
self
.
setupwidgets
(
text
)
if
change
>
0
:
self
.
editgroup
.
editor
.
changed
=
1
self
.
editgroup
.
editor
.
textchanged
()
if
self
.
settings
.
has_key
(
"selection"
):
selstart
,
selend
=
self
.
settings
[
"selection"
]
...
...
@@ -247,12 +247,12 @@ class Editor(W.Window):
def
domenu_toggle_run_as_main
(
self
):
self
.
run_as_main
=
not
self
.
run_as_main
self
.
run_with_interpreter
=
0
self
.
editgroup
.
editor
.
sel
changed
=
1
self
.
editgroup
.
editor
.
sel
ectionchanged
()
def
domenu_toggle_run_with_interpreter
(
self
):
self
.
run_with_interpreter
=
not
self
.
run_with_interpreter
self
.
run_as_main
=
0
self
.
editgroup
.
editor
.
sel
changed
=
1
self
.
editgroup
.
editor
.
sel
ectionchanged
()
def
showbreakpoints
(
self
,
onoff
):
self
.
editgroup
.
editor
.
showbreakpoints
(
onoff
)
...
...
@@ -314,7 +314,7 @@ class Editor(W.Window):
def
domenu_options
(
self
,
*
args
):
rv
=
SaveOptions
(
self
.
_creator
)
if
rv
:
self
.
editgroup
.
editor
.
sel
changed
=
1
# ouch...
self
.
editgroup
.
editor
.
sel
ectionchanged
()
# ouch...
self
.
_creator
=
rv
def
clicklinefield
(
self
):
...
...
@@ -633,6 +633,8 @@ class Editor(W.Window):
dir
,
dirname
=
os
.
path
.
split
(
dir
)
modname
=
dirname
+
'.'
+
modname
subname
=
_filename_as_modname
(
self
.
title
)
if
subname
is
None
:
return
self
.
globals
,
file
,
None
if
modname
:
if
subname
==
"__init__"
:
# strip trailing period
...
...
@@ -949,8 +951,8 @@ class SearchEngine:
self
.
hide
()
import
EasyDialogs
from
Carbon
import
Res
editor
.
changed
=
1
editor
.
sel
changed
=
1
editor
.
textchanged
()
editor
.
sel
ectionchanged
()
editor
.
ted
.
WEUseText
(
Res
.
Resource
(
Text
))
editor
.
ted
.
WECalText
()
editor
.
SetPort
()
...
...
@@ -1147,6 +1149,9 @@ def execstring(pytext, globals, locals, filename="<string>", debugging=0,
raise
W
.
AlertError
,
detail
except
(
KeyboardInterrupt
,
BdbQuit
):
pass
except
SystemExit
,
arg
:
if
arg
.
code
:
sys
.
stderr
.
write
(
"Script exited with status code: %s
\
n
"
%
repr
(
arg
.
code
))
except
:
if
haveThreading
:
import
continuation
...
...
@@ -1268,7 +1273,7 @@ def geteditorprefs():
tabsettings
=
prefs
.
pyedit
.
tabsettings
windowsize
=
prefs
.
pyedit
.
windowsize
except
:
fontsettings
=
prefs
.
pyedit
.
fontsettings
=
(
"
Python-Sans"
,
0
,
9
,
(
0
,
0
,
0
))
fontsettings
=
prefs
.
pyedit
.
fontsettings
=
(
"
Geneva"
,
0
,
10
,
(
0
,
0
,
0
))
tabsettings
=
prefs
.
pyedit
.
tabsettings
=
(
8
,
1
)
windowsize
=
prefs
.
pyedit
.
windowsize
=
(
500
,
250
)
sys
.
exc_traceback
=
None
...
...
Mac/Tools/IDE/Wtext.py
View file @
12d71392
from
Carbon
import
Qd
from
Carbon
import
TE
from
Carbon
import
Fm
from
Carbon
import
Evt
,
Events
,
Fm
,
Fonts
from
Carbon
import
Qd
,
Res
,
Scrap
from
Carbon
import
TE
,
TextEdit
,
Win
import
waste
import
WASTEconst
from
Carbon
import
Res
from
Carbon
import
Evt
from
Carbon
import
Events
from
Carbon
import
Scrap
import
string
from
Carbon
import
Win
import
Wbase
import
Wkeys
import
Wcontrols
import
PyFontify
from
types
import
*
from
Carbon
import
Fonts
from
Carbon
import
TextEdit
import
string
from
types
import
TupleType
,
StringType
class
TextBox
(
Wbase
.
Widget
):
...
...
@@ -105,6 +96,7 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
self
.
temptext
=
text
self
.
ted
=
None
self
.
selection
=
None
self
.
oldselection
=
None
self
.
_callback
=
callback
self
.
changed
=
0
self
.
selchanged
=
0
...
...
@@ -155,6 +147,13 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
self
.
temptext
=
None
Wbase
.
SelectableWidget
.
close
(
self
)
def
textchanged
(
self
,
all
=
0
):
self
.
changed
=
1
def
selectionchanged
(
self
):
self
.
selchanged
=
1
self
.
oldselection
=
self
.
getselection
()
def
gettabsettings
(
self
):
return
self
.
tabsettings
...
...
@@ -208,7 +207,7 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
viewrect
=
self
.
ted
.
WEGetViewRect
()
Qd
.
EraseRect
(
viewrect
)
self
.
ted
.
WEUpdate
(
self
.
_parentwindow
.
wid
.
GetWindowPort
().
visRgn
)
self
.
sel
changed
=
1
self
.
sel
ectionchanged
()
self
.
updatescrollbars
()
def
adjust
(
self
,
oldbounds
):
...
...
@@ -235,7 +234,7 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
def
selectall
(
self
):
self
.
ted
.
WESetSelection
(
0
,
self
.
ted
.
WEGetTextLength
())
self
.
sel
changed
=
1
self
.
sel
ectionchanged
()
self
.
updatescrollbars
()
def
selectline
(
self
,
lineno
,
charoffset
=
0
):
...
...
@@ -246,7 +245,7 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
# Let's fool Waste by initially selecting one char less:
self
.
ted
.
WESetSelection
(
newselstart
+
charoffset
,
newselend
-
1
)
self
.
ted
.
WESetSelection
(
newselstart
+
charoffset
,
newselend
)
self
.
sel
changed
=
1
self
.
sel
ectionchanged
()
self
.
updatescrollbars
()
def
getselection
(
self
):
...
...
@@ -256,7 +255,7 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
return
self
.
selection
def
setselection
(
self
,
selstart
,
selend
):
self
.
sel
changed
=
1
self
.
sel
ectionchanged
()
if
self
.
ted
:
self
.
ted
.
WESetSelection
(
selstart
,
selend
)
self
.
ted
.
WESelView
()
...
...
@@ -284,12 +283,12 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
if
oldselstart
<>
newselstart
or
oldselend
<>
newselend
:
self
.
ted
.
WESetSelection
(
newselstart
,
newselend
)
self
.
updatescrollbars
()
self
.
sel
changed
=
1
self
.
sel
ectionchanged
()
def
insert
(
self
,
text
):
self
.
ted
.
WEInsert
(
text
,
None
,
None
)
self
.
changed
=
1
self
.
sel
changed
=
1
self
.
textchanged
()
self
.
sel
ectionchanged
()
# text
def
set
(
self
,
text
):
...
...
@@ -306,8 +305,8 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
Qd
.
RectRgn
(
rgn
,
viewrect
)
Qd
.
EraseRect
(
viewrect
)
self
.
draw
(
rgn
)
#self.GetWindow().InvalWindowRect(self.ted.WEGetViewRect())
self
.
updatescrollbars
()
self
.
textchanged
(
1
)
def
get
(
self
):
if
not
self
.
_parent
:
...
...
@@ -321,9 +320,9 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
if
self
.
_enabled
and
not
modifiers
&
Events
.
cmdKey
or
char
in
Wkeys
.
arrowkeys
:
self
.
ted
.
WEKey
(
ord
(
char
),
modifiers
)
if
char
not
in
Wkeys
.
navigationkeys
:
self
.
changed
=
1
self
.
textchanged
()
if
char
not
in
Wkeys
.
scrollkeys
:
self
.
sel
changed
=
1
self
.
sel
ectionchanged
()
self
.
updatescrollbars
()
if
self
.
_callback
:
Wbase
.
CallbackCall
(
self
.
_callback
,
0
,
char
,
modifiers
)
...
...
@@ -332,7 +331,7 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
if
not
self
.
_enabled
:
return
self
.
ted
.
WEClick
(
point
,
modifiers
,
Evt
.
TickCount
())
self
.
sel
changed
=
1
self
.
sel
ectionchanged
()
self
.
updatescrollbars
()
return
1
...
...
@@ -411,8 +410,8 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
self
.
ted
.
WECut
()
self
.
updatescrollbars
()
self
.
selview
()
self
.
changed
=
1
self
.
sel
changed
=
1
self
.
textchanged
()
self
.
sel
ectionchanged
()
if
self
.
_callback
:
Wbase
.
CallbackCall
(
self
.
_callback
,
0
,
""
,
None
)
...
...
@@ -422,8 +421,8 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
self
.
selview
()
self
.
ted
.
WEPaste
()
self
.
updatescrollbars
()
self
.
changed
=
1
self
.
sel
changed
=
1
self
.
textchanged
()
self
.
sel
ectionchanged
()
if
self
.
_callback
:
Wbase
.
CallbackCall
(
self
.
_callback
,
0
,
""
,
None
)
...
...
@@ -431,8 +430,8 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
self
.
ted
.
WEDelete
()
self
.
selview
()
self
.
updatescrollbars
()
self
.
changed
=
1
self
.
sel
changed
=
1
self
.
textchanged
()
self
.
sel
ectionchanged
()
if
self
.
_callback
:
Wbase
.
CallbackCall
(
self
.
_callback
,
0
,
""
,
None
)
...
...
@@ -442,8 +441,8 @@ class EditText(Wbase.SelectableWidget, _ScrollWidget):
return
self
.
ted
.
WEUndo
()
self
.
updatescrollbars
()
self
.
changed
=
1
self
.
sel
changed
=
1
self
.
textchanged
()
self
.
sel
ectionchanged
()
if
self
.
_callback
:
Wbase
.
CallbackCall
(
self
.
_callback
,
0
,
""
,
None
)
...
...
@@ -610,6 +609,8 @@ class TextEditor(EditText):
import
re
commentPat
=
re
.
compile
(
"[
\
t
]*(#)"
)
indentPat
=
re
.
compile
(
"[
\
t
]*"
)
kStringColor
=
(
0
,
0x7fff
,
0
)
kCommentColor
=
(
0
,
0
,
0xb000
)
class
PyEditor
(
TextEditor
):
...
...
@@ -627,10 +628,111 @@ class PyEditor(TextEditor):
self
.
bind
(
"cmd]"
,
self
.
domenu_shiftright
)
self
.
bind
(
"cmdshift["
,
self
.
domenu_uncomment
)
self
.
bind
(
"cmdshift]"
,
self
.
domenu_comment
)
self
.
bind
(
"cmdshiftd"
,
self
.
alldirty
)
self
.
file
=
file
# only for debugger reference
self
.
_debugger
=
debugger
if
debugger
:
debugger
.
register_editor
(
self
,
self
.
file
)
self
.
_dirty
=
(
0
,
None
)
self
.
do_fontify
=
0
#def open(self):
# TextEditor.open(self)
# if self.do_fontify:
# self.fontify()
# self._dirty = (None, None)
def
_getflags
(
self
):
flags
=
(
WASTEconst
.
weDoDrawOffscreen
|
WASTEconst
.
weDoUseTempMem
|
WASTEconst
.
weDoAutoScroll
|
WASTEconst
.
weDoOutlineHilite
)
if
self
.
readonly
:
flags
=
flags
|
WASTEconst
.
weDoReadOnly
else
:
flags
=
flags
|
WASTEconst
.
weDoUndo
return
flags
def
textchanged
(
self
,
all
=
0
):
self
.
changed
=
1
if
all
:
self
.
_dirty
=
(
0
,
None
)
return
oldsel
=
self
.
oldselection
sel
=
self
.
getselection
()
if
not
sel
:
# XXX what to do?
return
selstart
,
selend
=
sel
selstart
,
selend
=
min
(
selstart
,
selend
),
max
(
selstart
,
selend
)
if
oldsel
:
oldselstart
,
oldselend
=
min
(
oldsel
),
max
(
oldsel
)
selstart
,
selend
=
min
(
selstart
,
oldselstart
),
max
(
selend
,
oldselend
)
startline
=
self
.
offsettoline
(
selstart
)
endline
=
self
.
offsettoline
(
selend
)
selstart
,
_
=
self
.
ted
.
WEGetLineRange
(
startline
)
_
,
selend
=
self
.
ted
.
WEGetLineRange
(
endline
)
if
selstart
>
0
:
selstart
=
selstart
-
1
self
.
_dirty
=
(
selstart
,
selend
)
def
idle
(
self
):
self
.
SetPort
()
self
.
ted
.
WEIdle
()
if
not
self
.
do_fontify
:
return
start
,
end
=
self
.
_dirty
if
start
is
None
:
return
textLength
=
self
.
ted
.
WEGetTextLength
()
if
end
is
None
:
end
=
textLength
if
start
>=
end
:
self
.
_dirty
=
(
None
,
None
)
else
:
self
.
fontify
(
start
,
end
)
self
.
_dirty
=
(
None
,
None
)
def
alldirty
(
self
,
*
args
):
self
.
_dirty
=
(
0
,
None
)
def
fontify
(
self
,
start
=
0
,
end
=
None
):
#W.SetCursor('watch')
if
self
.
readonly
:
self
.
ted
.
WEFeatureFlag
(
WASTEconst
.
weFReadOnly
,
0
)
self
.
ted
.
WEFeatureFlag
(
WASTEconst
.
weFOutlineHilite
,
0
)
self
.
ted
.
WEDeactivate
()
self
.
ted
.
WEFeatureFlag
(
WASTEconst
.
weFAutoScroll
,
0
)
self
.
ted
.
WEFeatureFlag
(
WASTEconst
.
weFUndo
,
0
)
pytext
=
self
.
get
().
replace
(
"
\
r
"
,
"
\
n
"
)
if
end
is
None
:
end
=
len
(
pytext
)
else
:
end
=
min
(
end
,
len
(
pytext
))
selstart
,
selend
=
self
.
ted
.
WEGetSelection
()
self
.
ted
.
WESetSelection
(
start
,
end
)
self
.
ted
.
WESetStyle
(
WASTEconst
.
weDoFace
|
WASTEconst
.
weDoColor
,
(
0
,
0
,
12
,
(
0
,
0
,
0
)))
tags
=
PyFontify
.
fontify
(
pytext
,
start
,
end
)
styles
=
{
'string'
:
(
WASTEconst
.
weDoColor
,
(
0
,
0
,
0
,
kStringColor
)),
'keyword'
:
(
WASTEconst
.
weDoFace
,
(
0
,
1
,
0
,
(
0
,
0
,
0
))),
'comment'
:
(
WASTEconst
.
weDoFace
|
WASTEconst
.
weDoColor
,
(
0
,
0
,
0
,
kCommentColor
)),
'identifier'
:
(
WASTEconst
.
weDoColor
,
(
0
,
0
,
0
,
(
0xbfff
,
0
,
0
)))
}
setselection
=
self
.
ted
.
WESetSelection
setstyle
=
self
.
ted
.
WESetStyle
for
tag
,
start
,
end
,
sublist
in
tags
:
setselection
(
start
,
end
)
mode
,
style
=
styles
[
tag
]
setstyle
(
mode
,
style
)
self
.
ted
.
WESetSelection
(
selstart
,
selend
)
self
.
SetPort
()
self
.
ted
.
WEFeatureFlag
(
WASTEconst
.
weFAutoScroll
,
1
)
self
.
ted
.
WEFeatureFlag
(
WASTEconst
.
weFUndo
,
1
)
self
.
ted
.
WEActivate
()
self
.
ted
.
WEFeatureFlag
(
WASTEconst
.
weFOutlineHilite
,
1
)
if
self
.
readonly
:
self
.
ted
.
WEFeatureFlag
(
WASTEconst
.
weFReadOnly
,
1
)
def
domenu_shiftleft
(
self
):
self
.
expandselection
()
...
...
@@ -786,8 +888,8 @@ class PyEditor(TextEditor):
else
:
self
.
ted
.
WEKey
(
ord
(
char
),
modifiers
)
if
char
not
in
Wkeys
.
navigationkeys
:
self
.
changed
=
1
self
.
sel
changed
=
1
self
.
textchanged
()
self
.
sel
ectionchanged
()
self
.
updatescrollbars
()
def
balanceparens
(
self
,
char
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment