parent
79e7ba97b0
commit
7293d9d916
|
@ -11,7 +11,7 @@ import mode, util, window
|
||||||
from point import Point
|
from point import Point
|
||||||
|
|
||||||
class Application(object):
|
class Application(object):
|
||||||
def __init__(self, stdscr, buffers=[], jump_to_line=None, init_mode=None):
|
def __init__(self, stdscr, buffers=[], **kwargs):
|
||||||
# initalize curses primitives
|
# initalize curses primitives
|
||||||
self.stdscr = stdscr
|
self.stdscr = stdscr
|
||||||
self.y, self.x = self.stdscr.getmaxyx()
|
self.y, self.x = self.stdscr.getmaxyx()
|
||||||
|
@ -149,11 +149,12 @@ class Application(object):
|
||||||
if b.modename:
|
if b.modename:
|
||||||
window.Window(b, self)
|
window.Window(b, self)
|
||||||
else:
|
else:
|
||||||
window.Window(b, self, mode_name=init_mode)
|
window.Window(b, self, mode_name=kwargs.get('init_mode'))
|
||||||
self.bufferlist.add_buffer(b)
|
self.bufferlist.add_buffer(b)
|
||||||
self.bufferlist.set_slot(self.active_slot, buffers[0])
|
self.bufferlist.set_slot(self.active_slot, buffers[0])
|
||||||
|
|
||||||
# see if the user has requested that we go to a particular line
|
# see if the user has requested that we go to a particular line
|
||||||
|
jump_to_line = kwargs.get('jump_to_line')
|
||||||
if not self.rcerror and jump_to_line:
|
if not self.rcerror and jump_to_line:
|
||||||
w = self.bufferlist.slots[0].window
|
w = self.bufferlist.slots[0].window
|
||||||
self.methods['goto-line'].execute(w, lineno=jump_to_line)
|
self.methods['goto-line'].execute(w, lineno=jump_to_line)
|
||||||
|
@ -941,9 +942,13 @@ def open_plain_file(path, name=None, binary=False):
|
||||||
else:
|
else:
|
||||||
raise Exception, "can't open %r; unsupported file type" % path
|
raise Exception, "can't open %r; unsupported file type" % path
|
||||||
|
|
||||||
def run_app(stdscr, buffers, jump_to_line=None, init_mode=None):
|
def run_app(stdscr, buffers, **kwargs):
|
||||||
curses.def_shell_mode()
|
curses.def_shell_mode()
|
||||||
a = Application(stdscr, buffers, jump_to_line, init_mode)
|
a = Application(stdscr, buffers, **kwargs)
|
||||||
|
if kwargs.get('init_cmd'):
|
||||||
|
act = a.methods[kwargs['init_cmd']]
|
||||||
|
act.execute(a.active_window())
|
||||||
|
a.last_action = act.name
|
||||||
a.run()
|
a.run()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
@ -985,6 +990,8 @@ if __name__ == "__main__":
|
||||||
help='jump to line NUM of the first argument')
|
help='jump to line NUM of the first argument')
|
||||||
parser.add_option('-m', '--mode', dest='mode', metavar='MODE',
|
parser.add_option('-m', '--mode', dest='mode', metavar='MODE',
|
||||||
help='open arguments in MODE')
|
help='open arguments in MODE')
|
||||||
|
parser.add_option('-x', '--exec', dest='cmd', metavar='CMD',
|
||||||
|
help='run CMD after launching')
|
||||||
|
|
||||||
(opts, args) = parser.parse_args(argv)
|
(opts, args) = parser.parse_args(argv)
|
||||||
|
|
||||||
|
@ -1044,7 +1051,9 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
# ok, now run our app
|
# ok, now run our app
|
||||||
try:
|
try:
|
||||||
curses.wrapper(run_app, buffers, opts.goto, opts.mode)
|
d = {'jump_to_line': opts.goto, 'init_mode': opts.mode,
|
||||||
|
'init_cmd': opts.cmd}
|
||||||
|
curses.wrapper(run_app, buffers, **d)
|
||||||
err = 0
|
err = 0
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|
14
term.py
14
term.py
|
@ -24,6 +24,16 @@ class Dumb:
|
||||||
self.outs = ''
|
self.outs = ''
|
||||||
self.i = 0
|
self.i = 0
|
||||||
self.outc = []
|
self.outc = []
|
||||||
|
def term_do_clear_bol(self):
|
||||||
|
pass
|
||||||
|
def term_do_clear_eol(self):
|
||||||
|
try:
|
||||||
|
del self.outc[self.i:]
|
||||||
|
except:
|
||||||
|
raise Exception(str(dir(self)))
|
||||||
|
def term_do_clear_eos(self):
|
||||||
|
pass
|
||||||
|
|
||||||
def term_do_backspace(self):
|
def term_do_backspace(self):
|
||||||
self.i = max(0, self.i - 1)
|
self.i = max(0, self.i - 1)
|
||||||
def term_do_tab(self):
|
def term_do_tab(self):
|
||||||
|
@ -108,6 +118,10 @@ class XTerm(Dumb):
|
||||||
'smso': 'term_nop', #enter standout mode
|
'smso': 'term_nop', #enter standout mode
|
||||||
'rmso': 'term_nop',
|
'rmso': 'term_nop',
|
||||||
'cup': 'term_nop',
|
'cup': 'term_nop',
|
||||||
|
|
||||||
|
#'ed': 'term_nop',
|
||||||
|
'el': 'term_do_clear_eol',
|
||||||
|
#'el1': 'term_nop',
|
||||||
}
|
}
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._meta = []
|
self._meta = []
|
||||||
|
|
Loading…
Reference in New Issue