all modes have been initially ported

--HG--
branch : pmacs2
This commit is contained in:
moculus 2007-06-25 15:59:44 +00:00
parent 1e9e66adb4
commit ad04ba8b41
4 changed files with 108 additions and 39 deletions

View File

@ -7,12 +7,12 @@ import util, window2
from point2 import Point from point2 import Point
# modes # modes
# TODO: mode_sql mode_tt
import mode2 import mode2
import mode_mini, mode_search, mode_replace, mode_which import mode_mini, mode_search, mode_replace, mode_which
import mode_console, mode_consolemini import mode_console, mode_consolemini
import mode_blame, mode_diff import mode_blame, mode_diff
import mode_c, mode_python, mode_perl, mode_xml, mode_nasm, mode_sh, mode_javascript, mode_sql import mode_c, mode_python, mode_perl, mode_nasm, mode_sh, mode_javascript, mode_sql
import mode_xml, mode_tt
import mode_life, mode_text, mode_mutt import mode_life, mode_text, mode_mutt
def run(buffers, jump_to_line=None, init_mode=None): def run(buffers, jump_to_line=None, init_mode=None):
@ -101,7 +101,7 @@ class Application(object):
'mutt': mode_mutt.Mutt, 'mutt': mode_mutt.Mutt,
'javascript': mode_javascript.Javascript, 'javascript': mode_javascript.Javascript,
'sql': mode_sql.Sql, 'sql': mode_sql.Sql,
#'template': mode_tt.Template, 'template': mode_tt.Template,
} }
# these are used in this order to determine which mode to open certain # these are used in this order to determine which mode to open certain
@ -130,7 +130,7 @@ class Application(object):
'.htm': 'xml', '.htm': 'xml',
'.js': 'javascript', '.js': 'javascript',
'.sql': 'sql', '.sql': 'sql',
#'.tt': 'template' '.tt': 'template'
} }
self.mode_detection = { self.mode_detection = {
'python': 'python', 'python': 'python',

67
code_examples/body.tt Normal file
View File

@ -0,0 +1,67 @@
<body class="main" onLoad="TBB.init(); TBB.initMouse();">
<div id="wrapper">
<div id="wrapper-bg">
<div id="header">
<div class="spHeaderText">You are logged in as: <strong>[% logged_in_full_name %]</strong></div>
<img src="/images/tbb/The-Benefit-Bank-logo.gif" alt="The Benefit Bank : Connecting Communities to Resources" />
</div>
<div id="nav-main" class="nav">
[% INCLUDE "links.tt" %]
</div>
<div id="translation">
<form action="/bds" name="fmTranslation" id="fmTranslation" method="POST">
<select name="selected_language" class="translate" onChange="document.getElementById('fmTranslation').submit(this)">
[% FOREACH lang = supported_languages %]
[% IF lang == 'en-US' %]
<option value="en-US"[% IF selected_language == lang %] selected[% END %]>English</option>
[% ELSIF lang == 'es' %]
<option value="es"[% IF selected_language == lang %] selected[% END %]>Espa&ntilde;ol</option>
[% ELSIF lang == 'ht' %]
<option value="ht"[% IF selected_language == lang %] selected[% END %]>Krey&ograve;l Ayisyen</option>
[% END %]
[% END %]
</select>
</form>
</div>
<div id="dvMain">
<div id="dvErrorMessages"> </div>
<form action='[% action %]' method='POST' name="fmBDSMain" onSubmit="return TBB.validateFormBDS(this);">
[% body_html %]
</div>
[%# triggers here %]
<div id="dvMainTextNav" dir="rtl">
[% FOREACH trigger = triggers %]
[% IF trigger.type == 'transition' %]
<input type="image" name="Next" src="/images/tbb/imBtNext.gif" class="np"/>
<img src="/images/tbb/imBtHash.gif"/>
<input type="hidden" name="previous_navigation_button_clicked" value=""/>
[% IF trigger.prolonged %]
<input type="hidden" id="prolonged" value="[% trigger.prolonged %]"/>
[% END %]
[% ELSIF trigger.type == 'backtrack' %]
<input type="image" src="/images/tbb/imBtPrev.gif" name="previous_navigation_button" onClick="this.form.previous_navigation_button_clicked.value = 1;" class="np"/>
[% ELSIF type == 'reset' %]
<div style="margin:12px 10px;"><input type="reset" value="Reset Form" class="rfButton"></div>
[% END %]
[% END %]
</div>
[% FOREACH field IN hidden_fields %]
<input type="hidden" name="[% field.name %]" value="[% field.value %]"/>
[% END %]
</form>
[% INCLUDE body_footer.tt %]
</div>
[% INCLUDE debug_footer.tt %]
</div>
[% INCLUDE glos_help.tt %]
</body>

View File

@ -1,33 +1,42 @@
import sets, sys import color, mode2
import color, commands, default, lex, lex_tt, method, mode, point, regex, tab_xml from lex2 import Grammar, PatternRule, RegionRule
class Template(mode.Fundamental): class TagGrammar(Grammar):
rules = [
RegionRule(name=r'string', start=r'(?P<tag>["\'])', grammar=Grammar(), end=r'%(tag)s'),
PatternRule(name=r'namespace', pattern=r'[a-zA-Z_]+:'),
PatternRule(name=r'attrname', pattern=r'[^ =>\n]+(?==)'),
PatternRule(name=r'name', pattern=r'[^ =>\n]+'),
]
class TemplateGrammar(Grammar):
rules = [
RegionRule(name=r'comment', start=r'<!--', grammar=Grammar(), end=r'-->'),
RegionRule(name=r'template', start=r'\[\%', grammar=Grammar(), end=r'%%\]'),
RegionRule(name=r'opentag', start=r'<', grammar=TagGrammar(), end=r'/?>'),
PatternRule(name=r'closetag', pattern=r'< */ *[ =>\n]+ *>'),
]
class Template(mode2.Fundamental):
grammar = TemplateGrammar
def __init__(self, w): def __init__(self, w):
mode.Fundamental.__init__(self, w) mode2.Fundamental.__init__(self, w)
#self.grammar = lex_xml.XMLGrammar()
self.grammar = lex_tt.TTGrammar()
self.lexer = lex.Lexer(self.grammar)
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', (']',))
self.default_color = color.build('default', 'default')
self.colors = { self.colors = {
'template': color.build('magenta', 'default'), 'comment': color.build('red', 'default'),
'markup': color.build('red', 'default'), 'template.start': color.build('magenta', 'default'),
'namespace': color.build('magenta', 'default'), 'template.null': color.build('magenta', 'default'),
'opentag': color.build('blue', 'default'), 'template.end': color.build('magenta', 'default'),
'nodevalue': color.build('default', 'default'), 'opentag.start': color.build('default', 'default'),
'attrname': color.build('cyan', 'default'), 'opentag.namespace': color.build('magenta', 'default'),
'attrvalue': color.build('green', 'default'), 'opentag.name': color.build('blue', 'default'),
'closetag': color.build('blue', 'default'), 'opentag.attrname': color.build('cyan', 'default'),
'comment': color.build('red', 'default'), 'opentag.string.start': color.build('green', 'default'),
'bizzaro': color.build('magenta', 'green'), 'opentag.string.null': color.build('green', 'default'),
'opentag.string.end': color.build('green', 'default'),
'opentag.end': color.build('default', 'default'),
} }
self.tabber = tab_xml.XMLTabber(self)
def name(self): def name(self):
return "Template" return "Template"

View File

@ -1,5 +1,4 @@
import sets, sys import color, mode2
import color, commands, default, lex2, method, mode, point, regex
from lex2 import Grammar, ConstantRule, PatternRule, RegionRule, DualRegionRule from lex2 import Grammar, ConstantRule, PatternRule, RegionRule, DualRegionRule
class TagGrammar(Grammar): class TagGrammar(Grammar):
@ -44,18 +43,13 @@ class XMLGrammar(Grammar):
), ),
] ]
class XML(mode.Fundamental): class XML(mode2.Fundamental):
grammar = XMLGrammar
def __init__(self, w): def __init__(self, w):
mode.Fundamental.__init__(self, w) mode2.Fundamental.__init__(self, w)
self.grammar = XMLGrammar()
self.lexer = lex2.Lexer(self.name(), self.grammar)
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', (']',))
self.default_color = color.build('default', 'default')
self.colors = { self.colors = {
'comment': color.build('red', 'default'), 'comment': color.build('red', 'default'),
'opentag.start': color.build('default', 'default'), 'opentag.start': color.build('default', 'default'),
@ -67,6 +61,5 @@ class XML(mode.Fundamental):
'opentag.string.end': color.build('green', 'default'), 'opentag.string.end': color.build('green', 'default'),
'opentag.end': color.build('default', 'default'), 'opentag.end': color.build('default', 'default'),
} }
def name(self): def name(self):
return "XML" return "XML"