This file is indexed.

/usr/share/highlight/langDefs/ruby.lang is in highlight-common 3.41-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Description="Ruby"

Identifiers=[[ [a-zA-Z_][\w\-]* ]]

Digits=[[ (?:0x|0X|0b)[0-9a-fA-F]+|\d*[\.\_]?\d+(?:[eE][\-\+]\d+)?[lLuU]? ]]

Keywords={
  { Id=1,
    List={"alias", "and", "begin", "begin", "break", "case", "class", "def", 
          "defined", "loop", "do", "else", "elsif", "end", "end", "ensure", 
          "false", "for", "if", "in", "module", "next", "nil", "not", "or", 
          "redo", "rescue", "retry", "return", "require", "self", "super", 
          "then", "true", "undef", "unless", "until", "when", "while", 
          "yield", "true", "false", "nil", "stdin", "stdout", "stderr", "env", 
          "argf", "argv", "data", "version", "ruby-release-date", 
          "ruby-platform", "include", "extend", "eval", "private", "raise", "throw"},
  },
  { Id=3,
   List = {"TRUE","FALSE","NIL","STDIN","STDOUT","STDERR","ENV","ARGF","ARGV",
           "DATA","RUBY_VERSION","RUBY_RELEASE_DATE","RUBY_PLATFORM"}
  },
  { Id=2,
    Regex=[[[\$\@][\/\w]+]],
  },
  
  -- see OnStateChange below
  { Id=3,
    Regex=[[m?\/.*?\/|(s|tr)\/.*?\/.*?\/[cegimosx]*]],
    Group=0,
  },
  { Id=3,
    Regex=[[\:\:?\w+]],
  },
  { Id=4,
    Regex=[[(\w+)\s*\(]],
  },
}

-- hereDoc opening delimiter, see OnStateChange to handle end of string
Strings={
  Delimiter=[["|'|`|<<[\-"'`]?[\w_]+["'`]?]],
  Interpolation = [[ %\{[^}]*?\} ]],
  
  DelimiterPairs= {
    { Open=[[%q\(]], Close=[[\)]] },
    { Open=[[%Q\(]], Close=[[\)]] },
    { Open=[[%\(]], Close=[[\)]] },
    { Open=[[%x\(]], Close=[[\)]] },
    { Open=[[%q\{]], Close=[[\}]] },
    { Open=[[%Q\{]], Close=[[\}]] },
    { Open=[[%\{]], Close=[[\}]] },
    { Open=[[%x\{]], Close=[[\}]] },
 }
  
}

IgnoreCase=false

Comments={
  { Block=false,
    Delimiter= { [[#]] },
  },
  { Block=true,
    Nested=false,
    Delimiter= { [[\=begin]],[[\=end]] }
  }
}

Operators=[[\(|\)|\[|\]|\{|\}|\,|\;|\:|\.|\&|<|>|\!|\-|\+|\/|\*|\=|\?|\%|\|]]

-- resolve issue with # which starts comments and extrapolation sequences in strings
function OnStateChange(oldState, newState, token, groupID)

  -- https://fossies.org/linux/misc/puppet-5.3.2.tar.gz/puppet-5.3.2/lib/puppet/indirector/hiera.rb?m=t  

  
   if token==")" or token=="}" or token=="{"  and oldState~=HL_STRING then
      return HL_OPERATOR
   end
   
   if oldState~=HL_STRING and newState==HL_INTERPOLATION then
      return HL_REJECT
   end
   
   if oldState==HL_STRING and token==hereDoc then
      hereDoc = nil
      return HL_STRING_END
   end
   
   
   
   if hereDoc~=nil then
    return HL_STRING
   end
   
   -- resolve issue with regex expression which spans strings like "</i>" + VAR + "</i>"
   if string.sub(token,1,1)=="/" and oldState==HL_STRING and newState==HL_KEYWORD then
      return HL_REJECT
   end
      
   --recognize hereDoc multine strings
   --do not clear hereDoc if token is ",' or `
   if (oldState==HL_STANDARD or oldState==HL_STRING) and newState==HL_STRING 
       and not string.find("\"'`", token) then
      hereDoc = string.match(token, "<<[%-\"'`]?([%a_]+)" )
   end
   
   -- fix quoted string termination
   if oldState~=HL_STRING  then
      qString=0
    end
    
   if newState==HL_STRING and (token=="%q(" or token=="%Q(" or token=="%(" or token=="%x(" ) then
      qString=1
      return HL_STRING
   end
 
  if newState==HL_STRING and (token=="%q{" or token=="%Q{" or token=="%{" or token=="%x{" ) then
      qString=2
      return HL_STRING
   end
   
   if oldState==HL_STRING and qString==1 and token==")" then
      qString=0
      return HL_STRING_END
   end
   
   if oldState==HL_STRING and qString==2 and token=="}" then
      qString=0
      return HL_STRING_END
   end
     
   return newState
end