HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
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