]>
luflow.net public git repositories - flow-web.git/blob - static/highlight/languages/elixir.min.js
1 /*! `elixir` grammar compiled for Highlight.js 11.11.1 */
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},{
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
)})();