Вход Регистрация
Файл: error-kitty/node_modules/highlight.js/lib/languages/ruby.js
Строк: 153
<?php
module
.exports = function(hljs) {
  var 
RUBY_METHOD_RE '[a-zA-Z_]\w*[!?=]?|[-+~]\@|<<|>>|=~|===?|<=>|[<>]=?|\*\*|[-/+%^&*~`|]|\[\]=?';
  var 
RUBY_KEYWORDS =
    
'and false then defined module in return redo if BEGIN retry end for true self when ' +
    
'next until do begin unless END rescue nil else break undef not super class case ' +
    
'require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor';
  var 
YARDOCTAG = {
    
className'yardoctag',
    
begin'@[A-Za-z]+'
  
};
  var 
IRB_OBJECT = {
    
className'value',
    
begin'#<'end'>'
  
};
  var 
COMMENT = {
    
className'comment',
    
variants: [
      {
        
begin'#'end'$',
        
contains: [YARDOCTAG]
      },
      {
        
begin'^\=begin'end'^\=end',
        
contains: [YARDOCTAG],
        
relevance10
      
},
      {
        
begin'^__END__'end'\n$'
      
}
    ]
  };
  var 
SUBST = {
    
className'subst',
    
begin'#\{'end'}',
    
keywordsRUBY_KEYWORDS
  
};
  var 
STRING = {
    
className'string',
    
contains: [hljs.BACKSLASH_ESCAPESUBST],
    
variants: [
      {
begin: /'/, end: /'/},
      {
begin: /"/, end: /"/},
      {
begin'%[qw]?\('end'\)'},
      {
begin'%[qw]?\['end'\]'},
      {
begin'%[qw]?{'end'}'},
      {
begin'%[qw]?<'end'>'},
      {
begin'%[qw]?/'end'/'},
      {
begin'%[qw]?%'end'%'},
      {
begin'%[qw]?-'end'-'},
      {
begin'%[qw]?\|'end'\|'},
      {
        
// B in the beginning suppresses recognition of ?-sequences where ?
        // is the last character of a preceding identifier, as in: `func?4`
        
begin: /B?(\d{1,3}|\x[A-Fa-f0-9]{1,2}|\u[A-Fa-f0-9]{4}|\?S)b/
      }
    ]
  };
  var 
PARAMS = {
    
className'params',
    
begin'\('end'\)',
    
keywordsRUBY_KEYWORDS
  
};

  var 
RUBY_DEFAULT_CONTAINS = [
    
STRING,
    
IRB_OBJECT,
    
COMMENT,
    {
      
className'class',
      
beginKeywords'class module'end'$|;',
      
illegal: /=/,
      
contains: [
        
hljs.inherit(hljs.TITLE_MODE, {begin'[A-Za-z_]\w*(::\w+)*(\?|\!)?'}),
        {
          
className'inheritance',
          
begin'<\s*',
          
contains: [{
            
className'parent',
            
begin'(' hljs.IDENT_RE '::)?' hljs.IDENT_RE
          
}]
        },
        
COMMENT
      
]
    },
    {
      
className'function',
      
beginKeywords'def'end' |$|;',
      
relevance0,
      
contains: [
        
hljs.inherit(hljs.TITLE_MODE, {beginRUBY_METHOD_RE}),
        
PARAMS,
        
COMMENT
      
]
    },
    {
      
className'constant',
      
begin'(::)?(\b[A-Z]\w*(::)?)+',
      
relevance0
    
},
    {
      
className'symbol',
      
beginhljs.UNDERSCORE_IDENT_RE '(\!|\?)?:',
      
relevance0
    
},
    {
      
className'symbol',
      
begin':',
      
contains: [STRING, {beginRUBY_METHOD_RE}],
      
relevance0
    
},
    {
      
className'number',
      
begin'(\b0[0-7_]+)|(\b0x[0-9a-fA-F_]+)|(\b[1-9][0-9_]*(\.[0-9_]+)?)|[0_]\b',
      
relevance0
    
},
    {
      
className'variable',
      
begin'(\$\W)|((\$|\@\@?)(\w+))'
    
},
    { 
// regexp container
      
begin'(' hljs.RE_STARTERS_RE ')\s*',
      
contains: [
        
IRB_OBJECT,
        
COMMENT,
        {
          
className'regexp',
          
contains: [hljs.BACKSLASH_ESCAPESUBST],
          
illegal: /n/,
          
variants: [
            {
begin'/'end'/[a-z]*'},
            {
begin'%r{'end'}[a-z]*'},
            {
begin'%r\('end'\)[a-z]*'},
            {
begin'%r!'end'![a-z]*'},
            {
begin'%r\['end'\][a-z]*'}
          ]
        }
      ],
      
relevance0
    
}
  ];
  
SUBST.contains RUBY_DEFAULT_CONTAINS;
  
PARAMS.contains RUBY_DEFAULT_CONTAINS;

  var 
IRB_DEFAULT = [
    {
      
begin: /^s*=>/,
      
className'status',
      
starts: {
        
end'$'containsRUBY_DEFAULT_CONTAINS
      
}
    },
    {
      
className'prompt',
      
begin: /^S[^=>n]*>+/,
      
starts: {
        
end'$'containsRUBY_DEFAULT_CONTAINS
      
}
    }
  ];

  return {
    
aliases: ['rb''gemspec''podspec''thor''irb'],
    
keywordsRUBY_KEYWORDS,
    
contains: [COMMENT].concat(IRB_DEFAULT).concat(RUBY_DEFAULT_CONTAINS)
  };
};
?>
Онлайн: 0
Реклама