parent
7f7143c491
commit
048ff560a5
|
@ -819,40 +819,7 @@ class Application(object):
|
||||||
slot = self.bufferlist.slots[slotname]
|
slot = self.bufferlist.slots[slotname]
|
||||||
if slot.window is None:
|
if slot.window is None:
|
||||||
return
|
return
|
||||||
|
status = slot.window.mode.get_status_bar()
|
||||||
w = slot.window
|
|
||||||
b = w.buffer
|
|
||||||
cursor = w.logical_cursor()
|
|
||||||
first = w.first
|
|
||||||
last = w.last
|
|
||||||
|
|
||||||
if b.readonly():
|
|
||||||
if b.changed():
|
|
||||||
modflag = '%*'
|
|
||||||
else:
|
|
||||||
modflag = '%%'
|
|
||||||
else:
|
|
||||||
if b.changed():
|
|
||||||
modflag = '**'
|
|
||||||
else:
|
|
||||||
modflag = '--'
|
|
||||||
|
|
||||||
if w.mark:
|
|
||||||
mark = w.mark
|
|
||||||
else:
|
|
||||||
mark = Point(-1, -1)
|
|
||||||
name = b.name()
|
|
||||||
|
|
||||||
if w.first_is_visible():
|
|
||||||
perc = "Top"
|
|
||||||
elif w.last_is_visible():
|
|
||||||
perc = "Bot"
|
|
||||||
else:
|
|
||||||
perc = "%2d%%" % (first.y*100 / len(b.lines))
|
|
||||||
|
|
||||||
# XYZ: we should actually use more of the 'state' variables
|
|
||||||
format = "%s %-18s (%s)--L%d--C%d--%s"
|
|
||||||
status = format % (modflag, name, w.mode.name(), cursor.y+1, cursor.x+1, perc)
|
|
||||||
status = status.ljust(slot.width)[:slot.width]
|
status = status.ljust(slot.width)[:slot.width]
|
||||||
self.win.addstr(slot.height + slot.y_offset, 0, status, curses.A_REVERSE)
|
self.win.addstr(slot.height + slot.y_offset, 0, status, curses.A_REVERSE)
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,7 @@ class Fundamental(Handler):
|
||||||
config = {}
|
config = {}
|
||||||
actions = []
|
actions = []
|
||||||
completers = {}
|
completers = {}
|
||||||
|
format = "%(flag)s %(bname)-18s (%(mname)s) %(cursor)s/%(mark)s %(perc)s"
|
||||||
|
|
||||||
# margin/line numbering
|
# margin/line numbering
|
||||||
show_line_numbers = False
|
show_line_numbers = False
|
||||||
|
@ -254,6 +255,47 @@ class Fundamental(Handler):
|
||||||
def name(self):
|
def name(self):
|
||||||
return self.modename
|
return self.modename
|
||||||
|
|
||||||
|
def _get_flag(self):
|
||||||
|
b = self.window.buffer
|
||||||
|
if b.readonly():
|
||||||
|
if b.changed():
|
||||||
|
return '%*'
|
||||||
|
else:
|
||||||
|
return '%%'
|
||||||
|
else:
|
||||||
|
if b.changed():
|
||||||
|
return '**'
|
||||||
|
else:
|
||||||
|
return '--'
|
||||||
|
def _get_perc(self):
|
||||||
|
w = self.window
|
||||||
|
if w.first_is_visible():
|
||||||
|
return "Top"
|
||||||
|
elif w.last_is_visible():
|
||||||
|
return "Bot"
|
||||||
|
else:
|
||||||
|
return "%2d%%" % (w.first.y*100 / len(w.buffer.lines))
|
||||||
|
def _get_mark(self):
|
||||||
|
w = self.window
|
||||||
|
if w.mark:
|
||||||
|
return '(%d,%d)' % (w.mark.y + 1, w.mark.x + 1)
|
||||||
|
else:
|
||||||
|
return '(None)'
|
||||||
|
def get_status_names(self):
|
||||||
|
w = self.window
|
||||||
|
c = w.logical_cursor()
|
||||||
|
return {
|
||||||
|
'bname': w.buffer.name(),
|
||||||
|
'mname': self.name(),
|
||||||
|
'flag': self._get_flag(),
|
||||||
|
'perc': self._get_perc(),
|
||||||
|
'cursor': '(%d,%d)' % (c.y + 1, c.x + 1),
|
||||||
|
'mark': self._get_mark(),
|
||||||
|
}
|
||||||
|
def get_status_bar(self):
|
||||||
|
names = self.get_status_names()
|
||||||
|
return self.format % names
|
||||||
|
|
||||||
# handle input tokens
|
# handle input tokens
|
||||||
def handle_token(self, t):
|
def handle_token(self, t):
|
||||||
'''self.handle_token(token): handles input "token"'''
|
'''self.handle_token(token): handles input "token"'''
|
||||||
|
|
14
mode/perl.py
14
mode/perl.py
|
@ -688,6 +688,20 @@ class Perl(mode.Fundamental):
|
||||||
completers = {
|
completers = {
|
||||||
'perlfunction': PerlFunctionCompleter(),
|
'perlfunction': PerlFunctionCompleter(),
|
||||||
}
|
}
|
||||||
|
format = "%(flag)s %(bname)-18s (%(mname)s) %(cursor)s/%(mark)s %(perc)s [%(func)s]"
|
||||||
|
def get_status_names(self):
|
||||||
|
w = self.window
|
||||||
|
c = w.logical_cursor()
|
||||||
|
names = {
|
||||||
|
'bname': w.buffer.name(),
|
||||||
|
'mname': self.name(),
|
||||||
|
'flag': self._get_flag(),
|
||||||
|
'perc': self._get_perc(),
|
||||||
|
'cursor': '(%d,%d)' % (c.y + 1, c.x + 1),
|
||||||
|
'mark': self._get_mark(),
|
||||||
|
'func': self.get_line_function(c.y),
|
||||||
|
}
|
||||||
|
return names
|
||||||
def __init__(self, w):
|
def __init__(self, w):
|
||||||
mode.Fundamental.__init__(self, w)
|
mode.Fundamental.__init__(self, w)
|
||||||
self.add_bindings('perl-set-lib', ('C-c l',))
|
self.add_bindings('perl-set-lib', ('C-c l',))
|
||||||
|
|
Loading…
Reference in New Issue