elixir.min.js
1 /*! `elixir` grammar compiled for Highlight.js 11.10.0 */ 2 (()=>{var e=(()=>{"use strict";return e=>{ 3 const n=e.regex,a="[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",i={$pattern:a, 4 keyword:["after","alias","and","case","catch","cond","defstruct","defguard","do","else","end","fn","for","if","import","in","not","or","quote","raise","receive","require","reraise","rescue","try","unless","unquote","unquote_splicing","use","when","with|0"], 5 literal:["false","nil","true"]},s={className:"subst",begin:/#\{/,end:/\}/, 6 keywords:i},c={match:/\\[\s\S]/,scope:"char.escape",relevance:0 7 },r="[/|([{<\"']",t=[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/\//, 8 end:/\//},{begin:/\|/,end:/\|/},{begin:/\(/,end:/\)/},{begin:/\[/,end:/\]/},{ 9 begin:/\{/,end:/\}/},{begin:/</,end:/>/}],d=e=>({scope:"char.escape", 10 begin:n.concat(/\\/,e),relevance:0}),o={className:"string", 11 begin:"~[a-z](?="+r+")",contains:t.map((n=>e.inherit(n,{contains:[d(n.end),c,s] 12 })))},b={className:"string",begin:"~[A-Z](?="+r+")", 13 contains:t.map((n=>e.inherit(n,{contains:[d(n.end)]})))},g={className:"regex", 14 variants:[{begin:"~r(?="+r+")",contains:t.map((a=>e.inherit(a,{ 15 end:n.concat(a.end,/[uismxfU]{0,7}/),contains:[d(a.end),c,s]})))},{ 16 begin:"~R(?="+r+")",contains:t.map((a=>e.inherit(a,{ 17 end:n.concat(a.end,/[uismxfU]{0,7}/),contains:[d(a.end)]})))}]},l={ 18 className:"string",contains:[e.BACKSLASH_ESCAPE,s],variants:[{begin:/"""/, 19 end:/"""/},{begin:/'''/,end:/'''/},{begin:/~S"""/,end:/"""/,contains:[]},{ 20 begin:/~S"/,end:/"/,contains:[]},{begin:/~S'''/,end:/'''/,contains:[]},{ 21 begin:/~S'/,end:/'/,contains:[]},{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},m={ 22 className:"function",beginKeywords:"def defp defmacro defmacrop",end:/\B\b/, 23 contains:[e.inherit(e.TITLE_MODE,{begin:a,endsParent:!0})]},u=e.inherit(m,{ 24 className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord", 25 end:/\bdo\b|$|;/}),f=[l,g,b,o,e.HASH_COMMENT_MODE,u,m,{begin:"::"},{ 26 className:"symbol",begin:":(?![\\s:])",contains:[l,{ 27 begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?" 28 }],relevance:0},{className:"symbol",begin:a+":(?!:)",relevance:0},{ 29 className:"title.class",begin:/(\b[A-Z][a-zA-Z0-9_]+)/,relevance:0},{ 30 className:"number", 31 begin:"(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[0-9][0-9_]*(\\.[0-9_]+([eE][-+]?[0-9]+)?)?)", 32 relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))"}] 33 ;return s.contains=f,{name:"Elixir",aliases:["ex","exs"],keywords:i,contains:f}} 34 })();hljs.registerLanguage("elixir",e)})();