Commit 029a6a68 authored by Guido van Rossum's avatar Guido van Rossum

Much improved autoindent and handling of tabs,

by Tim Peters.
parent c1bb6935
This diff is collapsed.
...@@ -100,7 +100,7 @@ class EditorWindow: ...@@ -100,7 +100,7 @@ class EditorWindow:
self.vbar = vbar = Scrollbar(top, name='vbar') self.vbar = vbar = Scrollbar(top, name='vbar')
self.text = text = Text(top, name='text', padx=5, self.text = text = Text(top, name='text', padx=5,
foreground=cprefs.CNormal[0], foreground=cprefs.CNormal[0],
background=cprefs.CNormal[1], background=cprefs.CNormal[1],
highlightcolor=cprefs.CHilite[0], highlightcolor=cprefs.CHilite[0],
highlightbackground=cprefs.CHilite[1], highlightbackground=cprefs.CHilite[1],
insertbackground=cprefs.CCursor[1], insertbackground=cprefs.CCursor[1],
...@@ -134,6 +134,7 @@ class EditorWindow: ...@@ -134,6 +134,7 @@ class EditorWindow:
text['yscrollcommand'] = vbar.set text['yscrollcommand'] = vbar.set
if sys.platform[:3] == 'win': if sys.platform[:3] == 'win':
text['font'] = ("lucida console", 8) text['font'] = ("lucida console", 8)
# text['font'] = ("courier new", 10)
text.pack(side=LEFT, fill=BOTH, expand=1) text.pack(side=LEFT, fill=BOTH, expand=1)
text.focus_set() text.focus_set()
...@@ -173,6 +174,10 @@ class EditorWindow: ...@@ -173,6 +174,10 @@ class EditorWindow:
self.wmenu_end = end self.wmenu_end = end
WindowList.register_callback(self.postwindowsmenu) WindowList.register_callback(self.postwindowsmenu)
if self.extensions.has_key('AutoIndent'):
self.extensions['AutoIndent'].set_indentation_params(
self.ispythonsource(filename))
def wakeup(self): def wakeup(self):
if self.top.wm_state() == "iconic": if self.top.wm_state() == "iconic":
self.top.wm_deiconify() self.top.wm_deiconify()
...@@ -323,7 +328,7 @@ class EditorWindow: ...@@ -323,7 +328,7 @@ class EditorWindow:
import ClassBrowser import ClassBrowser
ClassBrowser.ClassBrowser(self.flist, base, [head]) ClassBrowser.ClassBrowser(self.flist, base, [head])
self.text["cursor"] = save_cursor self.text["cursor"] = save_cursor
def open_path_browser(self, event=None): def open_path_browser(self, event=None):
import PathBrowser import PathBrowser
PathBrowser.PathBrowser(self.flist) PathBrowser.PathBrowser(self.flist)
...@@ -558,24 +563,23 @@ class EditorWindow: ...@@ -558,24 +563,23 @@ class EditorWindow:
else: else:
menu.add_command(label=label, underline=underline, menu.add_command(label=label, underline=underline,
command=command, accelerator=accelerator) command=command, accelerator=accelerator)
def getvar(self, name): def getvar(self, name):
var = self.getrawvar(name) var = self.getrawvar(name)
if var: if var:
return var.get() return var.get()
def setvar(self, name, value, vartype=None): def setvar(self, name, value, vartype=None):
var = self.getrawvar(name, vartype) var = self.getrawvar(name, vartype)
if var: if var:
var.set(value) var.set(value)
def getrawvar(self, name, vartype=None): def getrawvar(self, name, vartype=None):
var = self.vars.get(name) var = self.vars.get(name)
if not var and vartype: if not var and vartype:
self.vars[name] = var = vartype(self.text) self.vars[name] = var = vartype(self.text)
return var return var
def prepstr(s): def prepstr(s):
# Helper to extract the underscore from a string, # Helper to extract the underscore from a string,
# e.g. prepstr("Co_py") returns (2, "Copy"). # e.g. prepstr("Co_py") returns (2, "Copy").
......
...@@ -291,7 +291,7 @@ class PyShell(OutputWindow): ...@@ -291,7 +291,7 @@ class PyShell(OutputWindow):
__builtin__.quit = __builtin__.exit = "To exit, type Ctrl-D." __builtin__.quit = __builtin__.exit = "To exit, type Ctrl-D."
self.auto = self.extensions["AutoIndent"] # Required extension self.auto = self.extensions["AutoIndent"] # Required extension
self.auto.config(prefertabs=1) self.auto.config(usetabs=1, indentwidth=8)
text = self.text text = self.text
text.configure(wrap="char") text.configure(wrap="char")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment