Changelog lang file

master
Yevgen Muntyan 2006-08-28 23:27:37 -05:00
parent 404d485b0c
commit 37f67cc758
3 changed files with 45 additions and 40 deletions

View File

@ -1,42 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language _name="ChangeLog" version="1.0" _section="Others" mimetypes="text/x-changelog">
<language id="changelog" _name="ChangeLog" version="2.0" _section="Others"
mimetypes="text/x-changelog" globs="ChangeLog;ChangeLog.*">
<keyword-list _name = "Date" style = "String" case-sensitive="TRUE">
<keyword>[0-9-]*[0-9]+</keyword>
<keyword>jan</keyword>
<keyword>feb</keyword>
<keyword>mar</keyword>
<keyword>apr</keyword>
<keyword>may</keyword>
<keyword>jun</keyword>
<keyword>jul</keyword>
<keyword>aug</keyword>
<keyword>sep</keyword>
<keyword>oct</keyword>
<keyword>nov</keyword>
<keyword>dec</keyword>
<keyword>mon</keyword>
<keyword>tue</keyword>
<keyword>wed</keyword>
<keyword>thu</keyword>
<keyword>fri</keyword>
<keyword>sat</keyword>
<keyword>sun</keyword>
</keyword-list>
<styles>
<style id="date" name="Date" map-to="def:data-type"/>
<style id="name" name="Name" map-to="def:keyword"/>
<style id="email" name="Email" map-to="def:preprocessor"/>
<style id="file" name="File" map-to="def:function"/>
<style id="function" name="Function" map-to="def:function"/>
<style id="release" name="Release" map-to="def:function"/>
</styles>
<pattern-item _name="Email" style="Comment">
<regex>&lt;[A-Za-z0-9._:+-]+@[A-Za-z0-9._:+-]+\.[A-Za-z0-9]{2,4}&gt;</regex>
</pattern-item>
<definitions>
<define-regex id="identifier">[A-Za-z_][A-Za-z0-9_]*</define-regex>
<syntax-item _name="File" style="Data Type">
<start-regex>^[\t ]+[*(]</start-regex>
<end-regex>(:|^[\t ]*$)</end-regex>
</syntax-item>
<syntax-item _name="Marker" style="Keyword">
<start-regex>^[\t ]*[=[]</start-regex>
<end-regex>$</end-regex>
</syntax-item>
<context id="changelog">
<include>
<context id="date-and-stuff">
<!-- FIXME: how to match date here? The date and name line is
something like (DATE) (NAME) <EMAIL>, where DATE and NAME may
be quite arbitrary. -->
<match>^(\S+)\s+(.*)\s+(\&lt;[^\&lt;]+\&gt;)\s*$</match>
<include>
<context sub-pattern="1" style-ref="date"/>
<context sub-pattern="2" style-ref="name"/>
<context sub-pattern="3" style-ref="email"/>
</include>
</context>
<context id="release" style-ref="release">
<match>^\s*\=.*\=\s*$</match>
</context>
<context id="file" style-ref="file">
<start>^\s+\*</start>
<!-- end at blank lines if there's no colon -->
<end>\:|^$</end>
</context>
<context id="function" style-ref="function">
<match>\(\s*\%{identifier}\s*\)</match>
</context>
</include>
</context>
</definitions>
</language>

View File

@ -3,9 +3,9 @@
# "./check.sh" without arguments will validate lang and styles files
# specified here.
langs="automake.lang c.lang cpp.lang def.lang html.lang \
javascript.lang latex.lang makefile.lang xml.lang \
yacc.lang"
langs="automake.lang c.lang cpp.lang changelog.lang def.lang \
html.lang javascript.lang latex.lang makefile.lang \
xml.lang yacc.lang"
styles="gvim.styles kde.styles"

View File

@ -12,7 +12,7 @@
<style name="def:decimal" foreground="#0000FF"/>
<style name="def:floating-point" foreground="#800080"/>
<style name="def:character" foreground="#FF00FF"/>
<style name="def:note" foreground="#FFFFFF" background="#FFCCCC" bold="true" italic="true"/>
<style name="def:note" foreground="#FFFFFF" background="#FFCCCC" bold="true" italic="false"/>
<style name="def:function" foreground="#000080"/>
<style name="def:error" foreground="#FF0000" underline="true"/>
<style name="def:shebang" foreground="#808080" bold="true"/>
@ -41,4 +41,6 @@
<style name="js:constructors" bold="true"/>
<style name="latex:command" foreground="#008000"/>
<style name="changelog:release" foreground="#0095ff" bold="true"/>
</style-scheme>