medit/moo/mooedit/language-specs/changelog.lang

50 lines
1.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<language id="changelog" _name="ChangeLog" version="2.0" _section="Others">
<metadata>
<property name="mimetypes">text/x-changelog</property>
<property name="globs">ChangeLog*</property>
</metadata>
<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"/>
<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>
<definitions>
<define-regex id="identifier">[A-Za-z_][A-Za-z0-9_]*</define-regex>
<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>