HEX
Server: Apache
System: Linux iad1-shared-e1-13 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User: dh_x7ke6i (5503775)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: //usr/share/highlight/langDefs/cmake.lang
Description="CMake"

Keywords={
   { Id=1,
    List={
    "if", "elseif", "else", "endif", "foreach", "endforeach", "and", "while", "endwhile", "macro", "endmacro", "function", "endfunction", "set", "unset"
    },
  },
  { Id=2,
    Regex=[[ [0-9A-Z_]{2,}  ]],
  },
  { Id=3,
    Regex=[[\$\{.+\$\{.+?\}.+?\}|\$\{.+?\} ]],
  },
 { Id=3,
    Regex=[[ [A-Z_\>]+\:([\w/]+) ]],
  },
  { Id=4,
    Regex=[[(\w+)\s*\(]],
  },
}

Strings={
  Delimiter=[["|']],
  DelimiterPairs= {
    { Open=[[ \[=*\[ ]], Close=[[ \]=*\] ]], Raw=true }
  },
  AssertEqualLength=true
}

IgnoreCase=false

Comments={
  { Block=false,
    Delimiter= { [[ #(?!\[\[) ]] },
  },

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

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


-- resolve issue with ]] close delimiter which ends comments and strings
function OnStateChange(oldState, newState, token)

   if token=="]]" and oldState==HL_STRING and newState==HL_BLOCK_COMMENT_END then
      return HL_STRING_END
   end
   
   return newState
end