branch : pmacs2
This commit is contained in:
moculus 2007-10-22 00:55:29 +00:00
parent aaae626d53
commit de2a82f783
38 changed files with 407 additions and 127 deletions

View File

@ -2,8 +2,8 @@
import curses, curses.ascii, getpass, os, re, string, sets, sys, termios, time import curses, curses.ascii, getpass, os, re, string, sets, sys, termios, time
import traceback import traceback
import buffer, bufferlist, color, completer, keyinput, method, minibuffer, mode, mode2 import buffer, bufferlist, color, completer, keyinput, method, minibuffer, mode, mode
import util, window2 import util, window
from point import Point from point import Point
def run(buffers, jump_to_line=None, init_mode=None): def run(buffers, jump_to_line=None, init_mode=None):
@ -81,7 +81,7 @@ class Application(object):
self.mode_detection = {} self.mode_detection = {}
# ok, now let's load all the "standard" modes # ok, now let's load all the "standard" modes
mode2.install(self) mode.install(self)
for name in ('blame', 'c', 'console', 'consolemini', 'css', 'diff', for name in ('blame', 'c', 'console', 'consolemini', 'css', 'diff',
'dir', 'elisp', 'hex', 'html', 'java', 'javascript', 'dir', 'elisp', 'hex', 'html', 'java', 'javascript',
'lisp', 'make', 'mini', 'mutt', 'nasm', 'ocaml', 'perl', 'lisp', 'make', 'mini', 'mutt', 'nasm', 'ocaml', 'perl',
@ -124,9 +124,9 @@ class Application(object):
# build windows for our buffers # build windows for our buffers
for b in buffers: for b in buffers:
if b.name() == '*Console*': if b.name() == '*Console*':
window2.Window(b, self, height, width, mode_name='console') window.Window(b, self, height, width, mode_name='console')
else: else:
window2.Window(b, self, height, width, mode_name=init_mode) window.Window(b, self, height, width, mode_name=init_mode)
self.bufferlist.add_buffer(b) self.bufferlist.add_buffer(b)
self.bufferlist.set_slot(0, buffers[0]) self.bufferlist.set_slot(0, buffers[0])
@ -239,7 +239,7 @@ class Application(object):
else: else:
raise Exception, "not a file or dir: %r" % path raise Exception, "not a file or dir: %r" % path
b.open() b.open()
window2.Window(b, self, height=0, width=0, mode_name=mode_name) window.Window(b, self, height=0, width=0, mode_name=mode_name)
self.add_buffer(b) self.add_buffer(b)
return b return b
@ -254,7 +254,7 @@ class Application(object):
self.mini_prompt = prompt self.mini_prompt = prompt
self.mini_buffer = minibuffer.MiniBuffer(callback, method, tabber, modename) self.mini_buffer = minibuffer.MiniBuffer(callback, method, tabber, modename)
try: try:
window2.Window(self.mini_buffer, self, height=1, window.Window(self.mini_buffer, self, height=1,
width=self.x-1-len(self.mini_prompt)-1) width=self.x-1-len(self.mini_prompt)-1)
self.mini_active = True self.mini_active = True
except minibuffer.MiniBufferError: except minibuffer.MiniBufferError:
@ -299,7 +299,7 @@ class Application(object):
f.close() f.close()
b = buffer.FileBuffer(path) b = buffer.FileBuffer(path)
b.open() b.open()
window2.Window(b, self, height=0, width=0) window.Window(b, self, height=0, width=0)
self.add_buffer(b) self.add_buffer(b)
if switch_to: if switch_to:
self.switch_buffer(b) self.switch_buffer(b)
@ -310,7 +310,7 @@ class Application(object):
b = buffer.DataBuffer(name, data) b = buffer.DataBuffer(name, data)
if modename is not None: if modename is not None:
b.modename = modename b.modename = modename
window2.Window(b, self, height=0, width=0) window.Window(b, self, height=0, width=0)
self.add_buffer(b) self.add_buffer(b)
if switch_to: if switch_to:
self.switch_buffer(b) self.switch_buffer(b)
@ -343,7 +343,7 @@ class Application(object):
# XYZ # XYZ
if not b.has_window(slotname): if not b.has_window(slotname):
slot = self.bufferlist.slots[slotname] slot = self.bufferlist.slots[slotname]
window2.Window(b, self, height=slot.height, width=slot.width) window.Window(b, self, height=slot.height, width=slot.width)
# error string handling # error string handling
def set_error(self, s): def set_error(self, s):
@ -787,7 +787,7 @@ if __name__ == "__main__":
# if debugging, disable error handling to produce backtraces # if debugging, disable error handling to produce backtraces
if opts.debug: if opts.debug:
mode2.DEBUG = True mode.DEBUG = True
# we will support using +19 as the first argument to indicate opening the # we will support using +19 as the first argument to indicate opening the
# first file on line 19 (same as -g 19 or --goto 19) # first file on line 19 (same as -g 19 or --goto 19)

View File

@ -1,5 +1,5 @@
import datetime, grp, md5, os, pwd, re, sets, shutil, stat, string import datetime, grp, md5, os, pwd, re, sets, shutil, stat, string
import aes, dirutil, regex, highlight2 import aes, dirutil, regex, highlight
from point import Point from point import Point
# undo/redo stack constants # undo/redo stack constants
@ -108,7 +108,7 @@ class Buffer(object):
self.windows.append(w) self.windows.append(w)
modename = w.mode.name() modename = w.mode.name()
if modename not in self.highlights and w.mode.lexer is not None: if modename not in self.highlights and w.mode.lexer is not None:
self.highlights[modename] = highlight2.Highlighter(w.mode.lexer) self.highlights[modename] = highlight.Highlighter(w.mode.lexer)
self.highlights[modename].highlight(self.lines) self.highlights[modename].highlight(self.lines)
#if modename not in self.tabbing and w.mode.tabber is not None: #if modename not in self.tabbing and w.mode.tabber is not None:
# self.tabbing[modename] = # self.tabbing[modename] =

View File

@ -1,5 +1,5 @@
import sets import sets
import window2 import window
class Slot: class Slot:
def __init__(self, height, width, offset): def __init__(self, height, width, offset):
@ -93,7 +93,7 @@ class BufferList:
self.hidden_buffers.remove(b) self.hidden_buffers.remove(b)
if self.is_window_visible(b.windows[0]): if self.is_window_visible(b.windows[0]):
app = b.windows[0].application app = b.windows[0].application
w = window2.Window(b, app, height=slot.height, width=slot.width) w = window.Window(b, app, height=slot.height, width=slot.width)
else: else:
w = b.windows[0] w = b.windows[0]
slot.set(w) slot.set(w)

View File

@ -1,5 +1,5 @@
import os, commands, popen2, re, sets import os, commands, popen2, re, sets
import buffer, default, dirutil, regex, util, window2 import buffer, default, dirutil, regex, util, window
from point import Point from point import Point
WHITESPACE = [' ', '\n'] WHITESPACE = [' ', '\n']

View File

@ -0,0 +1,280 @@
import os, sets, string
import color, method
from lex import Lexer
from point import Point
DEBUG = False
class ActionError(Exception):
pass
class Handler(object):
def __init__(self):
self.prefixes = sets.Set(["C-x", "C-c", "C-u"])
self.last_sequence = ''
self.curr_tokens = []
self.bindings = {}
# handle adding and removing actions
def add_action(self, action):
if self.window is None:
return
elif action.name in self.window.application.methods:
return
else:
self.window.application.methods[action.name] = action
def del_action(self, name):
if self.window is None:
return
for binding in self.bindings.keys():
if self.bindings[binding] == name:
del self.bindings[binding]
def add_binding(self, name, sequence):
if self.window is None:
return
elif not hasattr(self.window, 'application'):
raise Exception, "argh %r %r" % (self, self.window)
elif name not in self.window.application.methods:
raise Exception, "No action called %r found" % name
else:
self.bindings[sequence] = name
def add_bindings(self, name, sequences):
if self.window is None:
return
for sequence in sequences:
self.add_binding(name, sequence)
def del_binding(self, sequence):
if self.window is None:
return
del self.bindings[sequence]
def add_action_and_bindings(self, action, sequences):
if self.window is None:
return
self.add_action(action)
for sequence in sequences:
self.add_binding(action.name, sequence)
def handle_token(self, t):
'''self.handle_token(token): returns None, or the action to
take. raises an exception on unknown input'''
self.curr_tokens.append(t)
sequence = " ".join(self.curr_tokens)
if sequence in self.bindings:
act = self.window.application.methods[self.bindings[sequence]]
self.last_sequence = sequence
self.curr_tokens = []
return act
elif t in self.prefixes:
for binding in self.bindings:
if binding.startswith(sequence):
return None
self.curr_tokens = []
self.last_sequence = sequence
raise ActionError, "no action defined for %r" % (sequence)
class Fundamental(Handler):
'''This is the default mode'''
modename = "Fundamental"
paths = []
basenames = []
extensions = []
detection = []
savetabs = False
tabwidth = 4
tabbercls = None
grammar = None
lexer = None
tabber = None
default_color = ('default', 'default',)
colors = {}
def install(cls, app):
app.setmode(cls.modename.lower(), cls, paths=cls.paths,
basenames=cls.basenames, extensions=cls.extensions,
detection=cls.detection)
install = classmethod(install)
def __init__(self, w):
self.window = w
# we need to defer this due to curses startup
#self.default_color = color.pairs('default', 'default')
Handler.__init__(self)
# first let's add all the "default" actions
self.add_bindings('start-of-line', ('C-a', 'HOME',))
self.add_bindings('end-of-line', ('C-e', 'END',))
self.add_bindings('backward', ('C-b', 'L_ARROW',))
self.add_bindings('forward', ('C-f', 'R_ARROW',))
self.add_bindings('center-view', ('C-l',))
self.add_bindings('next-line', ('C-n', 'D_ARROW',))
self.add_bindings('previous-line', ('C-p', 'U_ARROW',))
self.add_bindings('next-section', ('M-n', 'M-D_ARROW',))
self.add_bindings('previous-section', ('M-p', 'M-U_ARROW',))
self.add_bindings('page-down', ('C-v', 'PG_DN',))
self.add_bindings('page-up', ('M-v', 'PG_UP',))
self.add_bindings('goto-beginning', ('M-<',))
self.add_bindings('goto-end', ('M->',))
self.add_bindings('delete-left', ('DELETE', 'BACKSPACE',))
self.add_bindings('delete-left-word', ('M-DELETE', 'M-BACKSPACE',))
self.add_bindings('delete-right', ('C-d',))
self.add_bindings('delete-right-word', ('M-d',))
self.add_bindings('kill-region', ('C-w',))
self.add_bindings('copy-region', ('M-w',))
self.add_bindings('kill', ('C-k',))
self.add_bindings('copy', ('M-k',))
self.add_bindings('yank', ('C-y',))
self.add_bindings('pop-kill', ('M-y',))
self.add_bindings('right-word', ('M-f',))
self.add_bindings('left-word', ('M-b',))
self.add_bindings('set-mark', ('C-@',))
self.add_bindings('switch-buffer', ('C-x b',))
self.add_bindings('switch-mark', ('C-x C-x',))
self.add_bindings('undo', ('C-/', 'C-x u',))
self.add_bindings('redo', ('M-/', 'M-_', 'C-x r',))
self.add_bindings('goto-line', ('M-g',))
self.add_bindings('forward-chars', ('C-x M-c',))
self.add_bindings('forward-lines', ('C-x M-n',))
self.add_bindings('search', ('C-s',))
self.add_bindings('reverse-search', ('C-r',))
self.add_bindings('regex-search', ('M-C-s',))
self.add_bindings('regex-reverse-search', ('M-C-r',))
self.add_bindings('toggle-margins', ('M-m',))
self.add_bindings('replace', ('M-%',))
self.add_bindings('regex-replace', ('M-$',))
self.add_bindings('open-file', ('C-x C-f',))
self.add_bindings('kill-buffer', ('C-x k',))
self.add_bindings('list-buffers', ('C-x C-b',))
self.add_bindings('meta-x', ('M-x',))
self.add_bindings('wrap-line', ('M-q',))
self.add_bindings('transpose-words', ('M-t',))
self.add_bindings('save-buffer', ('C-x C-s',))
self.add_bindings('save-buffer-as', ('C-x C-w',))
self.add_bindings('relex-buffer', ('M-r',))
self.add_bindings('exit', ('C-x C-c',))
self.add_bindings('split-window', ('C-x s', 'C-x 2',))
self.add_bindings('unsplit-window', ('C-u s', 'C-x 1',))
self.add_bindings('toggle-window', ('C-x o',))
self.add_bindings('delete-left-whitespace', ('C-c DELETE', 'C-c BACKSPACE',))
self.add_bindings('delete-right-whitespace', ('C-c d',))
self.add_bindings('insert-space', ('SPACE',))
self.add_bindings('insert-tab', ('TAB',))
self.add_bindings('insert-newline', ('RETURN',))
self.add_bindings('comment-region', ('C-c #',))
self.add_bindings('uncomment-region', ('C-u C-c #',))
self.add_bindings('justify-right', ('C-c f',))
self.add_bindings('justify-left', ('C-c b',))
self.add_bindings('indent-block', ('C-c >',))
self.add_bindings('unindent-block', ('C-c <',))
self.add_bindings('token-complete', ('M-c', 'C-c c'))
self.add_bindings('shell-cmd', ('C-c !',))
self.add_bindings('open-aes-file', ('C-c a',))
self.add_bindings('open-console', ('M-e',))
self.add_bindings('show-bindings-buffer', ('C-c M-h','C-c M-?',))
self.add_bindings('which-command', ('M-?',))
self.add_bindings('cmd-help-buffer', ('M-h',))
self.add_bindings('set-mode', ('C-x m',))
self.add_bindings('cancel', ('C-]',))
self.add_bindings('exec', ('C-c e',))
self.add_bindings('grep', ('C-c g',))
self.add_bindings('pipe', ('C-c p',))
self.add_bindings('view-buffer-parent', ('C-c .',))
# unbound actions
self.add_action(method.GetToken())
# create all the insert actions for the basic text input
for c in string.letters + string.digits + string.punctuation:
self.add_binding('insert-string-%s' % c, c)
# lexing for highlighting, etc.
if self.grammar:
self.lexer = Lexer(self, self.grammar)
self.gstack = {}
self.ghist = {}
# tab handling
if self.tabbercls:
self.tabber = self.tabbercls(self)
# get mode name
def name(self):
return self.modename
# handle input tokens
def handle_token(self, t):
'''self.handle_token(token): handles input "token"'''
self.window.active_point = None
#self.window.application.clear_error()
self.window.clear_error()
try:
act = Handler.handle_token(self, t)
if act is None:
self.window.set_error(' '.join(self.curr_tokens))
return
else:
act.execute(self.window)
self.window.application.last_action = act.name
except ActionError, e:
if t != 'C-]':
self.window.set_error(str(e))
else:
self.window.set_error('Cancelled')
except Exception, e:
if DEBUG:
raise
else:
err = "%s in mode '%s'" % (e, self.name())
self.window.set_error(err)
def region_added(self, p, newlines):
if self.tabber is not None:
self.tabber.region_added(p, newlines)
if self.lexer:
ydelta = len(newlines) - 1
xdelta = len(newlines[-1])
ghist = {}
for name in self.ghist:
for gp in self.ghist[name]:
if gp < p:
newp = gp
elif ydelta == 0:
if p.y == gp.y:
newp = Point(gp.x + xdelta, gp.y)
else:
newp = gp
else:
if gp.y == p.y:
newp = Point(gp.x + xdelta, gp.y + ydelta)
else:
newp = Point(gp.x, gp.y + ydelta)
ghist.setdefault(name, {})
ghist[name][newp] = self.ghist[name][gp]
self.ghist = ghist
def region_removed(self, p1, p2):
if self.tabber is not None:
self.tabber.region_removed(p1, p2)
if self.lexer:
ydelta = p2.y - p1.y
xdelta = p2.x - p1.x
ghist = {}
for name in self.ghist:
for gp in self.ghist[name]:
if gp < p1:
newp = gp
elif p1 <= gp and gp < p2:
continue
elif ydelta == 0:
if gp.y == p2.y:
newp = Point(gp.x - xdelta, gp.y)
else:
newp = gp
else:
if gp.y == p2.y:
newp = Point(gp.x - xdelta, gp.y - ydelta)
else:
newp = Point(gp.x, gp.y - ydelta)
ghist.setdefault(name, {})
ghist[name][newp] = self.ghist[name][gp]
self.ghist = ghist
install = Fundamental.install

View File

@ -1,5 +1,5 @@
import commands import commands
import color, mode2 import color, mode
from lex import Grammar, PatternRule, RegionRule, Grammar from lex import Grammar, PatternRule, RegionRule, Grammar
from method import Method from method import Method
from mode.perl import PerlGrammar from mode.perl import PerlGrammar
@ -22,7 +22,7 @@ class BDSGrammar(Grammar):
PatternRule(r'operator', r'(?:&gt;=|&lt;=|&gt;|&lt;|==|&amp;&amp;|\|\||eq|ne)'), PatternRule(r'operator', r'(?:&gt;=|&lt;=|&gt;|&lt;|==|&amp;&amp;|\|\||eq|ne)'),
] ]
class BDS(mode2.Fundamental): class BDS(mode.Fundamental):
modename = 'BDS' modename = 'BDS'
basenames = ['components.xml'] basenames = ['components.xml']
grammar = BDSGrammar grammar = BDSGrammar
@ -59,7 +59,7 @@ class BDS(mode2.Fundamental):
'operator': ('magenta', 'default'), 'operator': ('magenta', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,4 +1,4 @@
import color, mode2 import color, mode
from point import Point from point import Point
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
@ -14,7 +14,7 @@ class BlameGrammar(Grammar):
PatternRule(r'data', r'.+$'), PatternRule(r'data', r'.+$'),
] ]
class Blame(mode2.Fundamental): class Blame(mode.Fundamental):
modename = 'Blame' modename = 'Blame'
grammar = BlameGrammar grammar = BlameGrammar
colors = { colors = {

View File

@ -1,5 +1,5 @@
import os, popen2, re import os, popen2, re
import color, default, method, mode2, tab2 import color, default, method, mode, tab
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
from mode.python import StringGrammar from mode.python import StringGrammar
@ -53,7 +53,7 @@ class CGrammar(Grammar):
PatternRule(r'eol', r"\n$"), PatternRule(r'eol', r"\n$"),
] ]
class CTabber(tab2.StackTabber): class CTabber(tab.StackTabber):
wst = ('spaces', 'eol', 'comment', 'comment.start', 'comment.null', 'comment.end') wst = ('spaces', 'eol', 'comment', 'comment.start', 'comment.null', 'comment.end')
def token_is_whitespace(self, y, i): def token_is_whitespace(self, y, i):
token = self.get_token(y, i) token = self.get_token(y, i)
@ -101,11 +101,11 @@ class CTabber(tab2.StackTabber):
self._opt_pop('cont') self._opt_pop('cont')
if self.is_leftmost_token(y, i): if self.is_leftmost_token(y, i):
currlvl = self.get_curr_level() currlvl = self.get_curr_level()
tab2.StackTabber._handle_open_token(self, currlvl, y, i) tab.StackTabber._handle_open_token(self, currlvl, y, i)
return currlvl return currlvl
def _handle_close_token(self, currlvl, y, i): def _handle_close_token(self, currlvl, y, i):
self._opt_pop('cont') self._opt_pop('cont')
currlvl = tab2.StackTabber._handle_close_token(self, currlvl, y, i) currlvl = tab.StackTabber._handle_close_token(self, currlvl, y, i)
token = self.get_token(y, i) token = self.get_token(y, i)
if self.is_rightmost_token(y, i): if self.is_rightmost_token(y, i):
if token.string == '}': if token.string == '}':
@ -175,7 +175,7 @@ class CTabber(tab2.StackTabber):
self._opt_append('cont', currlvl + 4) self._opt_append('cont', currlvl + 4)
return currlvl return currlvl
class C(mode2.Fundamental): class C(mode.Fundamental):
modename = 'C' modename = 'C'
extensions = ['.c'] extensions = ['.c']
tabbercls = CTabber tabbercls = CTabber
@ -235,7 +235,7 @@ class C(mode2.Fundamental):
'bizzaro': ('magenta', 'green'), 'bizzaro': ('magenta', 'green'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,4 +1,4 @@
import color, mode2 import color, mode
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
from mode.python import StringGrammar from mode.python import StringGrammar
@ -13,7 +13,7 @@ class ConsoleGrammar(Grammar):
RegionRule(r'string', r"'", StringGrammar, r"'"), RegionRule(r'string', r"'", StringGrammar, r"'"),
PatternRule(r'bareword', r'[a-zA-Z_][a-zA-Z0-9_]*'), PatternRule(r'bareword', r'[a-zA-Z_][a-zA-Z0-9_]*'),
] ]
class Console(mode2.Fundamental): class Console(mode.Fundamental):
modename = 'Console' modename = 'Console'
grammar = ConsoleGrammar() grammar = ConsoleGrammar()
colors = { colors = {

View File

@ -1,12 +1,12 @@
import code, string, StringIO, sys, traceback import code, string, StringIO, sys, traceback
import color, completer, method, mode2 import color, completer, method, mode
from lex import Grammar, PatternRule from lex import Grammar, PatternRule
from point import Point from point import Point
class ConsoleMini(mode2.Fundamental): class ConsoleMini(mode.Fundamental):
modename = 'ConsoleMini' modename = 'ConsoleMini'
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.bindings = {} self.bindings = {}
self.globals = dict(w.application.globals()) self.globals = dict(w.application.globals())
self.locals = dict(w.application.locals()) self.locals = dict(w.application.locals())

View File

@ -1,4 +1,4 @@
import color, mode2 import color, mode
from lex import Grammar, PatternRule, NocasePatternRule, RegionRule, NocaseRegionRule from lex import Grammar, PatternRule, NocasePatternRule, RegionRule, NocaseRegionRule
from point import Point from point import Point
@ -41,7 +41,7 @@ class CSSGrammar(Grammar):
RegionRule(r'string', '"', StringGrammar, r'"'), RegionRule(r'string', '"', StringGrammar, r'"'),
] ]
class CSS(mode2.Fundamental): class CSS(mode.Fundamental):
modename = 'CSS' modename = 'CSS'
extensions = ['.css'] extensions = ['.css']
grammar = CSSGrammar grammar = CSSGrammar
@ -91,7 +91,7 @@ class CSS(mode2.Fundamental):
'string.end': ('green', 'default'), 'string.end': ('green', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,4 +1,4 @@
import color, method, mode2, re import color, method, mode, re
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
class DiffGrammar(Grammar): class DiffGrammar(Grammar):
@ -11,7 +11,7 @@ class DiffGrammar(Grammar):
PatternRule(name=r'common', pattern=r"^.*\n$"), PatternRule(name=r'common', pattern=r"^.*\n$"),
] ]
class Diff(mode2.Fundamental): class Diff(mode.Fundamental):
modename = 'diff' modename = 'diff'
grammar = DiffGrammar() grammar = DiffGrammar()
colors = { colors = {
@ -22,7 +22,7 @@ class Diff(mode2.Fundamental):
'location': ('magenta', 'default', 'bold'), 'location': ('magenta', 'default', 'bold'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
#self.add_action_and_bindings(DiffNextSection(), ('M-n', 'M-D_ARROW',)) #self.add_action_and_bindings(DiffNextSection(), ('M-n', 'M-D_ARROW',))
#self.add_action_and_bindings(DiffPreviousSection(), ('M-p', 'M-U_ARROW',)) #self.add_action_and_bindings(DiffPreviousSection(), ('M-p', 'M-U_ARROW',))

View File

@ -1,5 +1,5 @@
import commands, dirutil, grp, method, mode2, os.path, pwd, re import commands, dirutil, grp, method, mode, os.path, pwd, re
import buffer, window2 import buffer, window
from lex import Grammar, PatternRule, RegionRule, PatternGroupRule from lex import Grammar, PatternRule, RegionRule, PatternGroupRule
from point import Point from point import Point
from method import Method, Argument from method import Method, Argument
@ -35,7 +35,7 @@ class DirGrammar(Grammar):
RegionRule(r'unk', r'^\?', PathGrammar, r'\n'), RegionRule(r'unk', r'^\?', PathGrammar, r'\n'),
] ]
class Dir(mode2.Fundamental): class Dir(mode.Fundamental):
modename = 'Dir' modename = 'Dir'
grammar = DirGrammar() grammar = DirGrammar()
colors = { colors = {
@ -66,7 +66,7 @@ class Dir(mode2.Fundamental):
'mtime': ('green', 'default'), 'mtime': ('green', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_action_and_bindings(RefreshView(), ('C-c r',)) self.add_action_and_bindings(RefreshView(), ('C-c r',))
self.add_action_and_bindings(OpenPath(), ('RETURN',)) self.add_action_and_bindings(OpenPath(), ('RETURN',))
self.add_action_and_bindings(DirGrep(), ('C-c G',)) self.add_action_and_bindings(DirGrep(), ('C-c G',))
@ -97,7 +97,7 @@ class DirGrep(Method):
b = buffer.PathListBuffer(bufname, paths) b = buffer.PathListBuffer(bufname, paths)
b.modename = 'dir' b.modename = 'dir'
b.open() b.open()
window2.Window(b, w.application, height=0, width=0) window.Window(b, w.application, height=0, width=0)
w.application.add_buffer(b) w.application.add_buffer(b)
w.application.switch_buffer(b) w.application.switch_buffer(b)
w.set_error("grep exited with %d" % status) w.set_error("grep exited with %d" % status)

View File

@ -1,5 +1,5 @@
import commands, os.path, sets, string, sys, traceback import commands, os.path, sets, string, sys, traceback
import color, completer, default, mode2, method, regex, tab2 import color, completer, default, mode, method, regex, tab
from point import Point from point import Point
from lex import Grammar, PatternRule, RegionRule, OverridePatternRule from lex import Grammar, PatternRule, RegionRule, OverridePatternRule
@ -25,10 +25,10 @@ class ELispGrammar(Grammar):
PatternRule(r'eol', r'\n$'), PatternRule(r'eol', r'\n$'),
] ]
class ELispTabber(tab2.StackTabber): class ELispTabber(tab.StackTabber):
pass pass
class ELisp(mode2.Fundamental): class ELisp(mode.Fundamental):
modename = 'ELisp' modename = 'ELisp'
basenames = ['.emacs'] basenames = ['.emacs']
extensions = ['.el'] extensions = ['.el']
@ -55,7 +55,7 @@ class ELisp(mode2.Fundamental):
'comment': ('red', 'default'), 'comment': ('red', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
# tag matching # tag matching
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))

View File

@ -1,5 +1,5 @@
import string import string
import color, mode2 import color, mode
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
from method import Method, Argument from method import Method, Argument
from point import Point from point import Point
@ -10,7 +10,7 @@ class HexGrammar(Grammar):
PatternRule(r'byte', r'[0-f][0-f]'), PatternRule(r'byte', r'[0-f][0-f]'),
] ]
class Hex(mode2.Fundamental): class Hex(mode.Fundamental):
modename = 'Hex' modename = 'Hex'
grammar = HexGrammar grammar = HexGrammar
colors = { colors = {
@ -18,7 +18,7 @@ class Hex(mode2.Fundamental):
'byte': ('white', 'default'), 'byte': ('white', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_action_and_bindings(GotoWord(), ('M-g',)) self.add_action_and_bindings(GotoWord(), ('M-g',))
self.add_action(FindStrings()) self.add_action(FindStrings())

View File

@ -1,4 +1,4 @@
import color, mode2 import color, mode
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
from mode.xml import TagGrammar from mode.xml import TagGrammar
from mode.javascript import JavascriptGrammar, Javascript from mode.javascript import JavascriptGrammar, Javascript
@ -14,7 +14,7 @@ class HTMLGrammar(Grammar):
RegionRule(r'tag', r'</?', TagGrammar, r'/?>'), RegionRule(r'tag', r'</?', TagGrammar, r'/?>'),
] ]
class HTML(mode2.Fundamental): class HTML(mode.Fundamental):
modename = 'HTML' modename = 'HTML'
extensions = ['.html', '.htm', '.shtml', '.shtm', '.xhtml'] extensions = ['.html', '.htm', '.shtml', '.shtm', '.xhtml']
grammar = HTMLGrammar grammar = HTMLGrammar
@ -43,7 +43,7 @@ class HTML(mode2.Fundamental):
} }
colors.update(Javascript.colors) colors.update(Javascript.colors)
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,4 +1,4 @@
import color, mode2, tab2 import color, mode, tab
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
from mode.python import StringGrammar from mode.python import StringGrammar
from mode.c import CTabber from mode.c import CTabber
@ -82,11 +82,11 @@ class JavaTabber(CTabber):
token = self.get_token(y, i) token = self.get_token(y, i)
if token.string == '{': if token.string == '{':
self._opt_pop('cond') self._opt_pop('cond')
currlvl = tab2.StackTabber._handle_open_token(self, currlvl, y, i) currlvl = tab.StackTabber._handle_open_token(self, currlvl, y, i)
return currlvl return currlvl
def _handle_close_token(self, currlvl, y, i): def _handle_close_token(self, currlvl, y, i):
self._opt_pop('cont') self._opt_pop('cont')
currlvl = tab2.StackTabber._handle_close_token(self, currlvl, y, i) currlvl = tab.StackTabber._handle_close_token(self, currlvl, y, i)
token = self.get_token(y, i) token = self.get_token(y, i)
if self.is_rightmost_token(y, i): if self.is_rightmost_token(y, i):
if token.string == '}': if token.string == '}':
@ -153,7 +153,7 @@ class JavaTabber(CTabber):
self._opt_append('cont', currlvl + 4) self._opt_append('cont', currlvl + 4)
return currlvl return currlvl
class Java(mode2.Fundamental): class Java(mode.Fundamental):
modename = 'Java' modename = 'Java'
extensions = ['.java'] extensions = ['.java']
tabbercls = JavaTabber tabbercls = JavaTabber
@ -188,7 +188,7 @@ class Java(mode2.Fundamental):
'float': ('green', 'default'), 'float': ('green', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,4 +1,4 @@
import color, mode2, tab2 import color, mode, tab
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
from point import Point from point import Point
from mode.python import StringGrammar from mode.python import StringGrammar
@ -34,7 +34,7 @@ class JavascriptGrammar(Grammar):
RegionRule('string', '"', StringGrammar, '"'), RegionRule('string', '"', StringGrammar, '"'),
] ]
class JavascriptTabber(tab2.StackTabber): class JavascriptTabber(tab.StackTabber):
def is_base(self, y): def is_base(self, y):
if y == 0: if y == 0:
return True return True
@ -52,7 +52,7 @@ class JavascriptTabber(tab2.StackTabber):
self._opt_pop("cont") self._opt_pop("cont")
return currlvl return currlvl
class Javascript(mode2.Fundamental): class Javascript(mode.Fundamental):
modename = 'Javascript' modename = 'Javascript'
extensions = ['.js'] extensions = ['.js']
grammar = JavascriptGrammar grammar = JavascriptGrammar
@ -91,7 +91,7 @@ class Javascript(mode2.Fundamental):
'regex.end': ('cyan', 'default'), 'regex.end': ('cyan', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,5 +1,5 @@
import commands, os.path, sets, string, sys, traceback import commands, os.path, sets, string, sys, traceback
import color, completer, default, mode2, method, regex, tab2 import color, completer, default, mode, method, regex, tab
from point import Point from point import Point
from lex import Grammar, PatternRule, RegionRule, OverridePatternRule from lex import Grammar, PatternRule, RegionRule, OverridePatternRule
from mode.python import StringGrammar from mode.python import StringGrammar
@ -13,7 +13,7 @@ class LispGrammar(Grammar):
PatternRule(r'eol', r'\n'), PatternRule(r'eol', r'\n'),
] ]
class LispTabber(tab2.StackTabber): class LispTabber(tab.StackTabber):
wsre = regex.whitespace wsre = regex.whitespace
wst = ('spaces', 'null', 'eol',) wst = ('spaces', 'null', 'eol',)
sre = regex.space sre = regex.space
@ -30,7 +30,7 @@ class LispTabber(tab2.StackTabber):
self._append(token.string, level) self._append(token.string, level)
return currlvl return currlvl
class Lisp(mode2.Fundamental): class Lisp(mode.Fundamental):
modename = 'Lisp' modename = 'Lisp'
tabwidth = 2 tabwidth = 2
tabbercls = LispTabber tabbercls = LispTabber
@ -48,7 +48,7 @@ class Lisp(mode2.Fundamental):
'string.end': ('green', 'default'), 'string.end': ('green', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,4 +1,4 @@
import color, mode2 import color, mode
from lex import Grammar, PatternRule, RegionRule, PatternGroupRule from lex import Grammar, PatternRule, RegionRule, PatternGroupRule
from mode.sh import ShGrammar, Sh from mode.sh import ShGrammar, Sh
@ -27,7 +27,7 @@ class MakeGrammar(Grammar):
RegionRule(r'string', r"'", StringGrammar, r"'"), RegionRule(r'string', r"'", StringGrammar, r"'"),
] ]
class Make(mode2.Fundamental): class Make(mode.Fundamental):
modename = 'Make' modename = 'Make'
basenames = ['Makefile'] basenames = ['Makefile']
grammar = MakeGrammar grammar = MakeGrammar

View File

@ -1,9 +1,9 @@
import method, mode2 import method, mode
class Mini(mode2.Fundamental): class Mini(mode.Fundamental):
modename = 'Mini' modename = 'Mini'
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
# delete actions relating to multiple lines # delete actions relating to multiple lines
self.del_action('center-view') self.del_action('center-view')

View File

@ -1,5 +1,5 @@
import re import re
import color, mode2, method import color, mode, method
import mode.text import mode.text
from lex import Grammar, PatternRule from lex import Grammar, PatternRule
@ -17,7 +17,7 @@ class MuttGrammar(Grammar):
PatternRule(name=r'stuff', pattern=r'[a-zA-Z0-9_]+'), PatternRule(name=r'stuff', pattern=r'[a-zA-Z0-9_]+'),
] ]
class Mutt(mode2.Fundamental): class Mutt(mode.Fundamental):
modename = 'Mutt' modename = 'Mutt'
grammar = MuttGrammar() grammar = MuttGrammar()
colors = { colors = {
@ -35,7 +35,7 @@ class Mutt(mode2.Fundamental):
'stuff': ('default', 'default'), 'stuff': ('default', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_action_and_bindings(mode.text.LearnWord(), ('C-c l',)) self.add_action_and_bindings(mode.text.LearnWord(), ('C-c l',))
self.add_action_and_bindings(MuttWrapParagraph(), ('M-q',)) self.add_action_and_bindings(MuttWrapParagraph(), ('M-q',))
self.add_action_and_bindings(MuttInsertSpace(), ('SPACE',)) self.add_action_and_bindings(MuttInsertSpace(), ('SPACE',))

View File

@ -1,4 +1,4 @@
import color, mode2 import color, mode
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
class StringGrammar(Grammar): class StringGrammar(Grammar):
@ -26,7 +26,7 @@ class NasmGrammar(Grammar):
] ]
class Nasm(mode2.Fundamental): class Nasm(mode.Fundamental):
modename = 'nasm' modename = 'nasm'
extensions = ['.s'] extensions = ['.s']
grammar = NasmGrammar grammar = NasmGrammar

View File

@ -1,5 +1,5 @@
import commands, os.path, sets, string, sys, traceback import commands, os.path, sets, string, sys, traceback
import color, completer, default, mode2, method, regex, tab2 import color, completer, default, mode, method, regex, tab
from point import Point from point import Point
from lex import Grammar, PatternRule, RegionRule, NocasePatternRule from lex import Grammar, PatternRule, RegionRule, NocasePatternRule
@ -54,7 +54,7 @@ class OcamlGrammar(Grammar):
PatternRule(r'prefix', r'[!?~][-!$%&*+\./:<=>?@^|~]*'), PatternRule(r'prefix', r'[!?~][-!$%&*+\./:<=>?@^|~]*'),
] ]
class Ocaml(mode2.Fundamental): class Ocaml(mode.Fundamental):
modename = 'ocaml' modename = 'ocaml'
extensions = ['.mli', '.ml'] extensions = ['.mli', '.ml']
grammar = OcamlGrammar grammar = OcamlGrammar
@ -88,7 +88,7 @@ class Ocaml(mode2.Fundamental):
'float': ('default', 'default'), 'float': ('default', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,5 +1,5 @@
import re, sets, string, sys import re, sets, string, sys
import color, commands, default, method, mode2, regex, tab2 import color, commands, default, method, mode, regex, tab
from point import Point from point import Point
from lex import Grammar, PatternRule, ContextPatternRule, RegionRule, OverridePatternRule, PatternGroupRule from lex import Grammar, PatternRule, ContextPatternRule, RegionRule, OverridePatternRule, PatternGroupRule
from method import Argument, Method, WrapParagraph from method import Argument, Method, WrapParagraph
@ -129,7 +129,7 @@ class PerlGrammar(Grammar):
PatternRule(r"eol", r"\n$"), PatternRule(r"eol", r"\n$"),
] ]
class PerlTabber(tab2.StackTabber): class PerlTabber(tab.StackTabber):
def is_base(self, y): def is_base(self, y):
if y == 0: if y == 0:
return True return True
@ -139,11 +139,11 @@ class PerlTabber(tab2.StackTabber):
t = highlighter.tokens[y][0] t = highlighter.tokens[y][0]
return t.name == 'keyword' and t.string == 'sub' return t.name == 'keyword' and t.string == 'sub'
def _handle_open_token(self, currlvl, y, i): def _handle_open_token(self, currlvl, y, i):
currlvl = tab2.StackTabber._handle_open_token(self, currlvl, y, i) currlvl = tab.StackTabber._handle_open_token(self, currlvl, y, i)
return currlvl return currlvl
def _handle_close_token(self, currlvl, y, i): def _handle_close_token(self, currlvl, y, i):
self._opt_pop('cont') self._opt_pop('cont')
currlvl = tab2.StackTabber._handle_close_token(self, currlvl, y, i) currlvl = tab.StackTabber._handle_close_token(self, currlvl, y, i)
token = self.get_token(y, i) token = self.get_token(y, i)
if self.is_rightmost_token(y, i): if self.is_rightmost_token(y, i):
if token.string == '}': if token.string == '}':
@ -194,7 +194,7 @@ class PerlTabber(tab2.StackTabber):
self._opt_append('cont', currlvl + 4) self._opt_append('cont', currlvl + 4)
return currlvl return currlvl
class Perl(mode2.Fundamental): class Perl(mode.Fundamental):
modename = 'Perl' modename = 'Perl'
extensions = ['.pl', '.pm'] extensions = ['.pl', '.pm']
detection = ['perl'] detection = ['perl']
@ -301,7 +301,7 @@ class Perl(mode2.Fundamental):
'translate.null': ('magenta', 'default'), 'translate.null': ('magenta', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_action_and_bindings(PerlSetLib(), ('C-c l',)) self.add_action_and_bindings(PerlSetLib(), ('C-c l',))
self.add_action_and_bindings(PerlCheckSyntax(), ('C-c s',)) self.add_action_and_bindings(PerlCheckSyntax(), ('C-c s',))

View File

@ -1,5 +1,5 @@
import commands, os.path, sets, string, sys, traceback import commands, os.path, sets, string, sys, traceback
import color, completer, default, mode2, method, regex, tab2 import color, completer, default, mode, method, regex, tab
from point import Point from point import Point
from lex import Grammar, PatternRule, RegionRule, OverridePatternRule from lex import Grammar, PatternRule, RegionRule, OverridePatternRule
@ -50,12 +50,12 @@ class PythonGrammar(Grammar):
PatternRule(r'eol', r'\n$'), PatternRule(r'eol', r'\n$'),
] ]
class PythonTabber(tab2.StackTabber): class PythonTabber(tab.StackTabber):
# NOTE: yield might initially seem like an endlevel name, but it's not one. # NOTE: yield might initially seem like an endlevel name, but it's not one.
endlevel_names = ('pass', 'return', 'raise', 'break', 'continue') endlevel_names = ('pass', 'return', 'raise', 'break', 'continue')
startlevel_names = ('if', 'try', 'class', 'def', 'for', 'while', 'try') startlevel_names = ('if', 'try', 'class', 'def', 'for', 'while', 'try')
def __init__(self, m): def __init__(self, m):
tab2.StackTabber.__init__(self, m) tab.StackTabber.__init__(self, m)
self.base_level = 0 self.base_level = 0
def is_base(self, y): def is_base(self, y):
@ -118,7 +118,7 @@ class PythonTabber(tab2.StackTabber):
def _handle_close_token(self, currlvl, y, i): def _handle_close_token(self, currlvl, y, i):
try: try:
return tab2.StackTabber._handle_close_token(self, currlvl, y, i) return tab.StackTabber._handle_close_token(self, currlvl, y, i)
except: except:
return currlvl return currlvl
@ -177,7 +177,7 @@ class PythonTabber(tab2.StackTabber):
self._append(token.string, currlvl + 4) self._append(token.string, currlvl + 4)
return currlvl return currlvl
class Python(mode2.Fundamental): class Python(mode.Fundamental):
modename = 'Python' modename = 'Python'
extensions = ['.py'] extensions = ['.py']
detection = ['python'] detection = ['python']
@ -210,7 +210,7 @@ class Python(mode2.Fundamental):
'system_identifier': ('cyan', 'default'), 'system_identifier': ('cyan', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
# tag matching # tag matching
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))

View File

@ -1,12 +1,12 @@
import re, sets, string import re, sets, string
import color, method, minibuffer, mode2, searchutil import color, method, minibuffer, mode, searchutil
from point import Point from point import Point
class Replace(mode2.Fundamental): class Replace(mode.Fundamental):
modename = 'Replace' modename = 'Replace'
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.actions = {} self.actions = {}
self.bindings = {} self.bindings = {}

View File

@ -1,4 +1,4 @@
import color, mode2 import color, mode
from lex import Grammar, PatternRule, RegionRule, PatternGroupRule from lex import Grammar, PatternRule, RegionRule, PatternGroupRule
class RSTString(Grammar): class RSTString(Grammar):
@ -40,7 +40,7 @@ class RSTGrammar(Grammar):
PatternRule(r'enumeration', r'^ *(?:[0-9]+|#)\.'), PatternRule(r'enumeration', r'^ *(?:[0-9]+|#)\.'),
] ]
class RST(mode2.Fundamental): class RST(mode.Fundamental):
modename = 'RST' modename = 'RST'
extensions = ['.rst'] extensions = ['.rst']
grammar = RSTGrammar grammar = RSTGrammar

View File

@ -1,5 +1,5 @@
import commands, os.path, sets, string, sys, traceback import commands, os.path, sets, string, sys, traceback
import color, completer, default, mode2, method, regex, tab2 import color, completer, default, mode, method, regex, tab
from point import Point from point import Point
from lex import Grammar, PatternRule, RegionRule, OverridePatternRule from lex import Grammar, PatternRule, RegionRule, OverridePatternRule
import mode.lisp import mode.lisp
@ -25,7 +25,7 @@ class SchemeGrammar(Grammar):
PatternRule(r'variable', r'[a-zA-Z!$%&*/:<=>?\^_~][-a-zA-Z0-9!$%&*/:<=>?^_~+.@]*|\+|-|\.\.\.'), PatternRule(r'variable', r'[a-zA-Z!$%&*/:<=>?\^_~][-a-zA-Z0-9!$%&*/:<=>?^_~+.@]*|\+|-|\.\.\.'),
] ]
class Scheme(mode2.Fundamental): class Scheme(mode.Fundamental):
modename = 'Scheme' modename = 'Scheme'
extensions = ['.scm'] extensions = ['.scm']
tabwidth = 2 tabwidth = 2
@ -51,7 +51,7 @@ class Scheme(mode2.Fundamental):
'number': ('default', 'default'), 'number': ('default', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,15 +1,15 @@
import re, sets, string import re, sets, string
import color, method, minibuffer, mode2, searchutil import color, method, minibuffer, mode, searchutil
from point import Point from point import Point
selected_color = 'magenta' selected_color = 'magenta'
unselected_color = 'yellow' unselected_color = 'yellow'
class Search(mode2.Fundamental): class Search(mode.Fundamental):
modename = 'Search' modename = 'Search'
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
# clear out all the defaults that we don't want/need # clear out all the defaults that we don't want/need
self.actions = {} self.actions = {}

View File

@ -1,5 +1,5 @@
import commands import commands
import color, mode2, tab2 import color, mode, tab
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
from method import Method from method import Method
@ -74,7 +74,7 @@ class ShGrammar(Grammar):
CaseGrammar.rules[0].pairs[0] = (ShGrammar, CaseGrammar.rules[0].pairs[0][1]) CaseGrammar.rules[0].pairs[0] = (ShGrammar, CaseGrammar.rules[0].pairs[0][1])
#ShGrammar.rules[2].pairs[0] = (ShGrammar, ShGrammar.rules[0].pairs[0][1]) #ShGrammar.rules[2].pairs[0] = (ShGrammar, ShGrammar.rules[0].pairs[0][1])
class ShTabber(tab2.StackTabber): class ShTabber(tab.StackTabber):
def is_base(self, y): def is_base(self, y):
if y == 0: if y == 0:
return True return True
@ -89,7 +89,7 @@ class ShTabber(tab2.StackTabber):
# we have to ignore ) when used in "case" statements. # we have to ignore ) when used in "case" statements.
return currlvl return currlvl
else: else:
return tab2.StackTabber._handle_close_token(self, currlvl, y, i) return tab.StackTabber._handle_close_token(self, currlvl, y, i)
def _handle_other_token(self, currlvl, y, i): def _handle_other_token(self, currlvl, y, i):
token = self.get_token(y, i) token = self.get_token(y, i)
fqname = token.fqname() fqname = token.fqname()
@ -101,7 +101,7 @@ class ShTabber(tab2.StackTabber):
self._opt_pop("cont") self._opt_pop("cont")
return currlvl return currlvl
class Sh(mode2.Fundamental): class Sh(mode.Fundamental):
modename = 'sh' modename = 'sh'
paths = ['/etc/profile'] paths = ['/etc/profile']
basenames = ['.bashrc', '.bash_profile', '.profile'] basenames = ['.bashrc', '.bash_profile', '.profile']
@ -150,7 +150,7 @@ class Sh(mode2.Fundamental):
'continuation': ('red', 'default'), 'continuation': ('red', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_action_and_bindings(ShCheckSyntax(), ('C-c s',)) self.add_action_and_bindings(ShCheckSyntax(), ('C-c s',))
class ShCheckSyntax(Method): class ShCheckSyntax(Method):

View File

@ -1,4 +1,4 @@
import mode2, tab2 import mode, tab
from lex import Grammar, PatternRule, NocasePatternRule, RegionRule, NocaseRegionRule from lex import Grammar, PatternRule, NocasePatternRule, RegionRule, NocaseRegionRule
from mode.python import StringGrammar from mode.python import StringGrammar
@ -62,7 +62,7 @@ class SqlGrammar(Grammar):
PatternRule(r'eol', r'\n'), PatternRule(r'eol', r'\n'),
] ]
class SqlTabber(tab2.StackTabber): class SqlTabber(tab.StackTabber):
wst = ('null', 'eol',) wst = ('null', 'eol',)
def is_base(self, y): def is_base(self, y):
if y == 0: if y == 0:
@ -92,7 +92,7 @@ class SqlTabber(tab2.StackTabber):
self._opt_pop("cont") self._opt_pop("cont")
return currlvl return currlvl
class Sql(mode2.Fundamental): class Sql(mode.Fundamental):
modename = 'Sql' modename = 'Sql'
extensions = ['.sql'] extensions = ['.sql']
grammar = SqlGrammar grammar = SqlGrammar
@ -129,7 +129,7 @@ class Sql(mode2.Fundamental):
'function.definition.end': ('magenta', 'default'), 'function.definition.end': ('magenta', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,4 +1,4 @@
import color, mode2, method, ispell import color, mode, method, ispell
from lex import Token, Rule, PatternRule, RegionRule, Grammar from lex import Token, Rule, PatternRule, RegionRule, Grammar
class WordRule(PatternRule): class WordRule(PatternRule):
@ -34,7 +34,7 @@ class TextGrammar(Grammar):
PatternRule(r'stuff', r'[a-zA-Z0-9_]+'), PatternRule(r'stuff', r'[a-zA-Z0-9_]+'),
] ]
class Text(mode2.Fundamental): class Text(mode.Fundamental):
modename = 'Text' modename = 'Text'
extensions=['.txt'] extensions=['.txt']
grammar = TextGrammar grammar = TextGrammar
@ -47,7 +47,7 @@ class Text(mode2.Fundamental):
'stuff': ('default', 'default'), 'stuff': ('default', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_action_and_bindings(LearnWord(), ('C-c l',)) self.add_action_and_bindings(LearnWord(), ('C-c l',))
self.add_action_and_bindings(TextInsertSpace(), ('SPACE',)) self.add_action_and_bindings(TextInsertSpace(), ('SPACE',))
self.add_action_and_bindings(method.WrapParagraph(), ('M-q',)) self.add_action_and_bindings(method.WrapParagraph(), ('M-q',))

View File

@ -1,4 +1,4 @@
import color, mode2, mode.text, method, ispell import color, mode, mode.text, method, ispell
from lex import Token, Rule, PatternRule, RegionRule, Grammar from lex import Token, Rule, PatternRule, RegionRule, Grammar
from mode.text import WordRule, ContinuedRule from mode.text import WordRule, ContinuedRule

View File

@ -1,4 +1,4 @@
import color, mode2 import color, mode
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
#from mode.xml import TagGrammar #from mode.xml import TagGrammar
from mode.perl import StringGrammar from mode.perl import StringGrammar
@ -28,7 +28,7 @@ class TemplateGrammar(Grammar):
RegionRule(r'tag', r'</?', TagGrammar, r'/?>'), RegionRule(r'tag', r'</?', TagGrammar, r'/?>'),
] ]
class Template(mode2.Fundamental): class Template(mode.Fundamental):
modename = 'Template' modename = 'Template'
extensions = ['.tt'] extensions = ['.tt']
grammar = TemplateGrammar grammar = TemplateGrammar
@ -58,7 +58,7 @@ class Template(mode2.Fundamental):
'tag.end': ('default', 'default'), 'tag.end': ('default', 'default'),
} }
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
self.add_bindings('close-paren', (')',)) self.add_bindings('close-paren', (')',))
self.add_bindings('close-brace', ('}',)) self.add_bindings('close-brace', ('}',))
self.add_bindings('close-bracket', (']',)) self.add_bindings('close-bracket', (']',))

View File

@ -1,17 +1,17 @@
import color, method, mode2 import color, method, mode
from point import Point from point import Point
class Which(mode2.Fundamental): class Which(mode.Fundamental):
modename = 'Which' modename = 'Which'
def __init__(self, w): def __init__(self, w):
mode2.Fundamental.__init__(self, w) mode.Fundamental.__init__(self, w)
old_mode = w.buffer.method.old_window.mode old_mode = w.buffer.method.old_window.mode
self.bindings = dict(old_mode.bindings) self.bindings = dict(old_mode.bindings)
def handle_token(self, t): def handle_token(self, t):
'''self.handle_token(token): handles input "token"''' '''self.handle_token(token): handles input "token"'''
self.window.active_point = None self.window.active_point = None
try: try:
act = mode2.Handler.handle_token(self, t) act = mode.Handler.handle_token(self, t)
if act is None: if act is None:
return return
else: else:
@ -19,7 +19,7 @@ class Which(mode2.Fundamental):
self.window.application.set_error(s) self.window.application.set_error(s)
self._end() self._end()
except Exception, e: except Exception, e:
if mode2.DEBUG: if mode.DEBUG:
raise raise
else: else:
err = "%s in mode '%s'" % (e, self.name()) err = "%s in mode '%s'" % (e, self.name())

View File

@ -1,4 +1,4 @@
import color, mode2 import color, mode
from lex import Grammar, PatternRule, RegionRule from lex import Grammar, PatternRule, RegionRule
class TagGrammar(Grammar): class TagGrammar(Grammar):
@ -17,7 +17,7 @@ class XMLGrammar(Grammar):
RegionRule(r'tag', r'<', TagGrammar, r'/?>'), RegionRule(r'tag', r'<', TagGrammar, r'/?>'),
] ]
class XML(mode2.Fundamental): class XML(mode.Fundamental):
modename = 'XML' modename = 'XML'
extensions = ['.xml', '.xml.in'] extensions = ['.xml', '.xml.in']
grammar = XMLGrammar grammar = XMLGrammar

View File

@ -1,5 +1,5 @@
import os.path, string import os.path, string
import highlight2, regex import highlight, regex
from point import Point from point import Point
WORD_LETTERS = list(string.letters + string.digits) WORD_LETTERS = list(string.letters + string.digits)
@ -83,7 +83,7 @@ class Window(object):
self.mode = m self.mode = m
modename = m.name() modename = m.name()
if modename not in self.buffer.highlights and m.lexer is not None: if modename not in self.buffer.highlights and m.lexer is not None:
self.buffer.highlights[modename] = highlight2.Highlighter(m.lexer) self.buffer.highlights[modename] = highlight.Highlighter(m.lexer)
self.buffer.highlights[modename].highlight(self.buffer.lines) self.buffer.highlights[modename].highlight(self.buffer.lines)
#self.redraw() #self.redraw()