/usr/share/highlight/langDefs/coffee.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 | -- a highlight lang definition for coffeescript, by Jess Austin
Description = "Coffeescript"
Keywords = {
{
Id = 1,
List = { "and", "break", "by", "catch", "class", "continue", "debugger",
"default", "delete", "do", "else", "export", "extends", "finally", "for",
"if", "import", "in", "instanceof", "is", "isnt", "loop", "new", "not",
"of", "or", "return", "super", "switch", "then", "throw", "try", "typeof",
"unless", "until", "when", "while", "yield", "as", "from", "var"
}
},
{
Id = 2,
List = { "false", "Infinity", "NaN", "no", "null", "off", "on", "this",
"undefined", "true", "yes" }
},
{ -- property names in object literals
Id = 3,
Regex = [[\w+(?=:)]]
},
{
Id = 1,
Regex = [[///|/(?!//)]]
},
}
Comments = {
{
Block = true,
Nested = false,
Delimiter = { [[###]], [[###]] }
},
{
Block = false,
Delimiter = { [[#(?!\{)]] } -- lookahead so string interpolation will work
}
}
Strings = {
Delimiter = [["""|'''|"|']],
Escape = [=[\\u\{[[:xdigit:]]+\}|\\u[[:xdigit:]]{4}|\\x[[:xdigit:]]{2}|\\[\\bfnrtv0'"]]=],
Interpolation = [[#\{[^}]+}]]
}
NestedSections = { -- regex as nested language seems to work?
{
Lang = "cs_block_regex",
Delimiter = { [[///]], [[///[gimuy]*]] }
},
{
Lang = "js_regex", -- js.lang might want to use this too
Delimiter = { [[/(?!//)]], [[(?!\\)/[gimuy]*]] }
},
}
Digits = [=[0[Bb][01]+|0[Oo][0-7]+|0[Xx][[:xdigit:]]+|\d+]=]
Identifiers = [=[[A-Za-z$_][A-Za-z$_0-9]*]=]
Operators = [[=|\+|-|\*|\/|%|<|>|&|\||^|!|\?|:|\.|,|@|\(|\)|\[|]|\{|}]]
EnableIndentation = true
IgnoreCase = false
|