branch : pmacs2
This commit is contained in:
moculus 2007-06-17 14:55:36 +00:00
parent 6847df5dff
commit b431523ede
2 changed files with 24 additions and 27 deletions

View File

@ -494,7 +494,7 @@ class Application(object):
else:
self.highlight_chars(slot.offset + count, px, px + slot.width)
px += slot.width
if x + slot.width >= len(line):
if x + slot.width >= len(w.buffer.lines[y]):
x = 0
y += 1
else:
@ -584,7 +584,7 @@ class Application(object):
s_offset = max(x - token.x, 0)
x_offset = max(token.x - x, 0)
assert x_offset < slot.width
assert x_offset < slot.width, '%d < %d' % (x_offset, slot.width)
c = self._get_token_color(w, token)
s = token.string[s_offset:]
@ -644,11 +644,10 @@ class Application(object):
perc = "%2d%%" % (first.y*100 / len(b.lines))
# XYZ: we should actually use more of the 'state' variables
#format = "----:%s-Fl %-18s (%s)--L%d--C%d--%s"
#status = format % (modflag, name, w.mode.name(), cursor.y+1, cursor.x+1, perc)
format = "----:%s-Fl %-18s (%s)--L%d--C%d--%s--%s--%s"
status = format % (modflag, name, w.mode.name(), cursor.y+1, cursor.x+1, w.first, w.last, perc)
format = "----:%s-Fl %-18s (%s)--L%d--C%d--%s"
status = format % (modflag, name, w.mode.name(), cursor.y+1, cursor.x+1, perc)
#format = "----:%s-Fl %-18s (%s)--L%d--C%d--%s--%s--%s"
#status = format % (modflag, name, w.mode.name(), cursor.y+1, cursor.x+1, w.first, w.last, perc)
status = status[:slot.width + 1]
status += "-" * (slot.width - len(status) + 1)
self.win.addnstr(slot.height + slot.offset, 0, status, slot.width + 1,

View File

@ -14,10 +14,10 @@ DATATYPES = {
}
class Argument:
def __init__(self, name, type=type(""), datatype=None, prompt=None, help="",
def __init__(self, name, typ=type(""), datatype=None, prompt=None, help="",
default=default.none, load_default=False):
self.name = name
self.type = type
self.type = typ
self.datatype = datatype
if prompt is None:
self.prompt = "%s: " % (name)
@ -38,8 +38,8 @@ class Argument:
return value
def ask_for_value(self, method, w, **vargs):
assert w.application.mini_buffer_is_open() is False, \
"Recursive minibuffer antics"
app = w.application
assert app.mini_buffer_is_open() is False, "Recursive minibuffer antics"
vargs2 = vargs.copy()
assert callable(self.default), "default value func must be callable"
if self.load_default:
@ -52,16 +52,16 @@ class Argument:
if d is not None and v == "":
v = d
vargs2[self.name] = self.coerce_to_type(v)
w.application.close_mini_buffer()
app.close_mini_buffer()
method.execute(w, **vargs2)
tabber = DATATYPES.get(self.datatype, None)
if d is not None:
p = self.prompt + "(%s) " % (d)
else:
p = self.prompt
w.application.open_mini_buffer(p, return_value, method, tabber)
app.open_mini_buffer(p, return_value, method, tabber)
if starting_value:
w.application.mini_buffer.set_data(starting_value)
app.mini_buffer.set_data(starting_value)
class Method:
_is_method = True
@ -149,7 +149,7 @@ class Search(Method):
class ReverseSearch(Method):
'''Interactive search; finds previous occurance of text in buffer'''
def execute(self, w, **vargs):
self.old_cursor = w.logical_cursor().offset(0, 0)
self.old_cursor = w.logical_cursor()
self.old_window = w
self.direction = 'previous'
w.application.open_mini_buffer('I-Search: ',
@ -508,7 +508,6 @@ class InsertSpace(Method):
w.insert_string_at_cursor(' ')
class InsertTab(Method):
'''Insert tab into buffer, or tabbify line, depending on mode'''
#XYZ
def _execute(self, w, **vargs):
cursor = w.logical_cursor()
#i = w.mode.get_indentation_level(cursor.y)
@ -528,8 +527,7 @@ class KillWhitespace(Method):
cursor = w.logical_cursor()
i = w.buffer.count_leading_whitespace(cursor.y)
if i > 0:
w.kill(Point(0, cursor.y),
Point(i, cursor.y))
w.kill(Point(0, cursor.y), Point(i, cursor.y))
# tabification
class TabBuffer(Method):
@ -557,7 +555,7 @@ class CommentRegion(Method):
w.input_line = "Empty kill region"
return
for y in range(p1.y, p2.y):
w.buffer.insert_string_at_cursor(Point(0, y), "#")
w.buffer.insert_string(Point(0, y), "#")
class UncommentRegion(Method):
'''Remove a comment from every line in the current buffer'''
def _execute(self, w, **vargs):
@ -573,7 +571,7 @@ class UncommentRegion(Method):
return
for y in range(p1.y, p2.y):
if w.buffer.lines[y].startswith("#"):
w.buffer.delete_string(Point(0, y), Point(1, y))
w.buffer.delete(Point(0, y), Point(1, y))
# wrapping/justifying/etc
class WrapLine(Method):
@ -674,7 +672,7 @@ class JustifyLeft(Method):
return
if this_line[i] != ' ':
return
w.buffer.delete_string(Point(i, cursor.y), cursor)
w.buffer.delete(Point(i, cursor.y), cursor)
# undo/redo
class Undo(Method):
@ -782,8 +780,8 @@ class UnindentBlock(Method):
for i in range(0, len(lines)):
if lines[i].startswith(' '):
lines[i] = lines[i][4:]
w.buffer.delete_string(Point(0, p1.y), Point(0, p2.y))
w.buffer.insert_string_at_cursor(Point(0, p1.y), '\n'.join(lines) + '\n')
w.buffer.delete(Point(0, p1.y), Point(0, p2.y))
w.buffer.insert_string(Point(0, p1.y), '\n'.join(lines) + '\n')
class IndentBlock(Method):
'''Add 4 spaces to each line in region'''
def _execute(self, w, **vargs):
@ -800,8 +798,8 @@ class IndentBlock(Method):
lines = w.buffer.lines[p1.y:p2.y]
for i in range(0, len(lines)):
lines[i] = ' ' + lines[i]
w.buffer.delete_string(Point(0, p1.y), Point(0, p2.y))
w.buffer.insert_string_at_cursor(Point(0, p1.y), '\n'.join(lines) + '\n')
w.buffer.delete(Point(0, p1.y), Point(0, p2.y))
w.buffer.insert_string(Point(0, p1.y), '\n'.join(lines) + '\n')
class CodeComplete(Method):
'''Complete based on tokenized strings'''
@ -846,7 +844,7 @@ class CodeComplete(Method):
seen_keys = seen.keys()
num_seen = len(seen_keys)
if word == sofar:
#w.application.set_error('No completion possible: %r' % word)
w.application.set_error('No completion possible: %r' % word)
pass
elif sofar:
w.buffer.delete(p1, p2)
@ -856,7 +854,7 @@ class CodeComplete(Method):
else:
w.application.set_error('Ambiguous: %r' % seen_keys)
else:
#w.application.set_error('No completion found: %r' % word)
w.application.set_error('No completion found: %r' % word)
pass
class OpenConsole(Method):