2021-03-10 11:35:00 -05:00
hljs . registerLanguage ( "elixir" , ( ( ) => { "use strict" ; return e => {
const n = "[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?" , i = { $pattern : n ,
keyword : "and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote require import with|0"
} , a = { className : "subst" , begin : /#\{/ , end : /\}/ , keywords : i } , s = { className : "number" ,
begin : "(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[1-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)" ,
relevance : 0 } , b = { className : "string" , begin : "~[a-z](?=[/|([{<\"'])" , contains : [ {
endsParent : ! 0 , contains : [ { contains : [ e . BACKSLASH _ESCAPE , a ] , variants : [ { begin : /"/ ,
end : /"/ } , { begin : /'/ , end : /'/ } , { begin : /\// , end : /\// } , { begin : /\|/ , end : /\|/ } , {
begin : /\(/ , end : /\)/ } , { begin : /\[/ , end : /\]/ } , { begin : /\{/ , end : /\}/ } , { begin : /</ ,
end : />/ } ] } ] } ] } , d = { className : "string" , contains : [ e . BACKSLASH _ESCAPE , a ] , variants : [ {
begin : /"""/ , end : /"""/ } , { begin : /'''/ , end : /'''/ } , { begin : /~S"""/ , end : /"""/ ,
contains : [ ] } , { begin : /~S"/ , end : /"/ , contains : [ ] } , { begin : /~S'''/ , end : /'''/ ,
contains : [ ] } , { begin : /~S'/ , end : /'/ , contains : [ ] } , { begin : /'/ , end : /'/ } , { begin : /"/ ,
end : /"/ } ] } , r = { className : "function" , beginKeywords : "def defp defmacro" , end : /\B\b/ ,
contains : [ e . inherit ( e . TITLE _MODE , { begin : n , endsParent : ! 0 } ) ] } , g = e . inherit ( r , {
className : "class" , beginKeywords : "defimpl defmodule defprotocol defrecord" ,
end : /\bdo\b|$|;/ } ) , t = [ d , { className : "string" , begin : "~[A-Z](?=[/|([{<\"'])" ,
contains : [ { begin : /"/ , end : /"/ } , { begin : /'/ , end : /'/ } , { begin : /\// , end : /\// } , {
begin : /\|/ , end : /\|/ } , { begin : /\(/ , end : /\)/ } , { begin : /\[/ , end : /\]/ } , { begin : /\{/ ,
end : /\}/ } , { begin : /</ , end : />/ } ] } , b , e . HASH _COMMENT _MODE , g , r , { begin : "::" } , {
className : "symbol" , begin : ":(?![\\s:])" , contains : [ d , {
begin : "[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?"
} ] , relevance : 0 } , { className : "symbol" , begin : n + ":(?!:)" , relevance : 0 } , s , {
className : "variable" , begin : "(\\$\\W)|((\\$|@@?)(\\w+))" } , { begin : "->" } , {
begin : "(" + e . RE _STARTERS _RE + ")\\s*" , contains : [ e . HASH _COMMENT _MODE , {
begin : /\/: (?=\d+\s*[,\]])/ , relevance : 0 , contains : [ s ] } , { className : "regexp" ,
illegal : "\\n" , contains : [ e . BACKSLASH _ESCAPE , a ] , variants : [ { begin : "/" , end : "/[a-z]*"
} , { begin : "%r\\[" , end : "\\][a-z]*" } ] } ] , relevance : 0 } ] ; return a . contains = t , {
name : "Elixir" , keywords : i , contains : t } } } ) ( ) ) ;