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

152 lines
4.3 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language _name="Ruby" version="1.0" _section="Scripts" mimetypes="application/x-ruby;text/x-ruby" globs="*.rb">
<escape-char>\</escape-char>
<keyword-list _name="Attribute Definitions" style="Others" case-sensitive="TRUE">
<keyword>attr</keyword>
<keyword>attr_writer</keyword>
<keyword>attr_reader</keyword>
<keyword>attr_accessor</keyword>
</keyword-list>
<keyword-list _name="Definitions" style="Keyword" case-sensitive="TRUE">
<keyword>alias</keyword>
<keyword>class</keyword>
<keyword>module</keyword>
<keyword>def</keyword>
<keyword>undef</keyword>
</keyword-list>
<keyword-list _name="Pseudo Variables" style="Data Type" case-sensitive="TRUE">
<keyword>self</keyword>
<keyword>super</keyword>
<keyword>nil</keyword>
<keyword>false</keyword>
<keyword>true</keyword>
<keyword>__FILE__</keyword>
<keyword>__LINE__</keyword>
</keyword-list>
<keyword-list _name = "Module Handlers" style = "Preprocessor">
<keyword>require</keyword>
<keyword>include</keyword>
<keyword>load</keyword>
</keyword-list>
<keyword-list _name = "Keywords" style = "Keyword" case-sensitive="TRUE">
<keyword>BEGIN</keyword>
<keyword>END</keyword>
<keyword>and</keyword>
<keyword>begin</keyword>
<keyword>break</keyword>
<keyword>case</keyword>
<keyword>catch</keyword>
<keyword>defined?</keyword>
<keyword>do</keyword>
<keyword>else</keyword>
<keyword>elsif</keyword>
<keyword>end</keyword>
<keyword>ensure</keyword>
<keyword>for</keyword>
<keyword>if</keyword>
<keyword>in</keyword>
<keyword>next</keyword>
<keyword>not</keyword>
<keyword>or</keyword>
<keyword>private</keyword>
<keyword>protected</keyword>
<keyword>public</keyword>
<keyword>redo</keyword>
<keyword>rescue</keyword>
<keyword>retry</keyword>
<keyword>return</keyword>
<keyword>then</keyword>
<keyword>throw</keyword>
<keyword>unless</keyword>
<keyword>until</keyword>
<keyword>when</keyword>
<keyword>while</keyword>
<keyword>yield</keyword>
</keyword-list>
<keyword-list _name = "Builtins" style = "Others" case-sensitive="TRUE">
<keyword>Array</keyword>
<keyword>Bignum</keyword>
<keyword>Binding</keyword>
<keyword>Class</keyword>
<keyword>Continuation</keyword>
<keyword>Dir</keyword>
<keyword>Exception</keyword>
<keyword>FalseClass</keyword>
<keyword>File::Stat</keyword>
<keyword>File</keyword>
<keyword>Fixnum</keyword>
<keyword>Fload</keyword>
<keyword>Hash</keyword>
<keyword>Integer</keyword>
<keyword>IO</keyword>
<keyword>MatchData</keyword>
<keyword>Method</keyword>
<keyword>Module</keyword>
<keyword>NilClass</keyword>
<keyword>Numeric</keyword>
<keyword>Object</keyword>
<keyword>Proc</keyword>
<keyword>Range</keyword>
<keyword>Regexp</keyword>
<keyword>String</keyword>
<keyword>Struct::Tms</keyword>
<keyword>Symbol</keyword>
<keyword>Symbol</keyword>
<keyword>ThreadGroup</keyword>
<keyword>Thread</keyword>
<keyword>Time</keyword>
<keyword>TrueClass</keyword>
</keyword-list>
<pattern-item _name = "Class Variables" style = "Data Type">
<regex>@@[a-zA-Z_][a-zA-Z0-9_]*</regex>
</pattern-item>
<pattern-item _name = "Instance Variables" style = "Data Type">
<regex>@[a-zA-Z_][a-zA-Z0-9_]*</regex>
</pattern-item>
<pattern-item _name = "Global Variables" style = "Data Type">
<regex>\$[a-zA-Z_][a-zA-Z0-9_]*</regex>
</pattern-item>
<pattern-item _name = "Symbols" style = "Data Type">
<regex>:[a-zA-Z0-9_]+</regex>
</pattern-item>
<pattern-item _name = "RegExp Variables" style = "Decimal">
<regex>\$[1-9][0-9]*</regex>
</pattern-item>
<pattern-item _name = "Constants" style = "Decimal">
<regex>\b[A-Z_][A-Za-z0-9_]*\b</regex>
</pattern-item>
<string _name = "Double Quoted String" style = "String" end-at-line-end = "TRUE">
<start-regex>&quot;</start-regex>
<end-regex>&quot;</end-regex>
</string>
<string _name = "Single Quoted String" style = "String" end-at-line-end = "TRUE">
<start-regex>&apos;</start-regex>
<end-regex>&apos;</end-regex>
</string>
<line-comment _name = "Line Comment" style= "Comment">
<start-regex>#</start-regex>
</line-comment>
<block-comment _name="Multiline Comment" style="Comment">
<start-regex>^=begin</start-regex>
<end-regex>^=end</end-regex>
</block-comment>
</language>