Skip to content

Commit

Permalink
feat: update keywords (#51)
Browse files Browse the repository at this point in the history
  • Loading branch information
jaschdoc authored Aug 30, 2024
1 parent 373365c commit a5f80ba
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 27 deletions.
2 changes: 1 addition & 1 deletion dist/flix.es.min.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a]},i={
scope:"title.function",beginKeywords:"def",end:/[(\[]/,excludeEnd:!0,
contains:[a]},s={scope:"literal",variants:[{begin:/\?\?\?/},{begin:/\?/,
contains:[a]}]};return{name:"Flix",keywords:{$pattern:e.IDENT_RE+"!?",
keyword:["alias","as","case","catch","checked_cast","checked_ecast","default","def","do","eff","else","enum","for","forA","forM","force","foreach","from","if","import","inject","inline","instance","into","java_get_field","java_new","java_set_field","law","lawful","lazy","let","match","mod","new","object","par","project","pub","query","redef","region","resume","sealed","select","solve","trait","try","type","typematch","unchecked_cast","unchecked_ecast","use","where","with","without","yield"],
keyword:["alias","as","case","catch","checked_cast","checked_ecast","default","def","do","eff","else","enum","for","forA","forM","force","foreach","from","if","import","inject","inline","instance","into","law","lawful","lazy","let","match","mod","new","object","par","project","pub","query","redef","region","resume","sealed","select","solve","struct","throw","trait","try","type","typematch","unchecked_cast","unchecked_ecast","unsafe","use","where","with","without","yield"],
literal:["()","true","false","Nil","Some","None","LessThan","EqualTo","GreaterThan","Ok","Err","null","static"],
type:["Unit","Bool","Char","Float32","Float64","Int8","Int16","Int32","Int64","String","BigInt"],
built_in:["debug","debug!","debug!!","IO","ef","ef1","ef2","Read","Write","Channel","Eq","PartialOrder","Order","Cmp","List","Map","Set","RedBlackTree","Result","Array","ToString","toString","flip","on","identity","fst","snd","swap",">>","|>","||>","!>","print","println","bug!","unreachable!","and","or","not","ref","deref"]
Expand Down
8 changes: 4 additions & 4 deletions dist/flix.min.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ begin:e.C_NUMBER_RE+"(f(32|64)|i(8|16|32|64)|ii)?",relevance:0},n={
scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,{
scope:"subst",begin:/(\$|\%)\{/,end:/\}/}]},a={scope:"title",
begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,
relevance:0},i={scope:"title.class",beginKeywords:"class enum",
relevance:0},r={scope:"title.class",beginKeywords:"class enum",
end:/[:={\[\n;\(]/,excludeEnd:!0,
contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a]},r={
contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a]},i={
scope:"title.function",beginKeywords:"def",end:/[(\[]/,excludeEnd:!0,
contains:[a]},s={scope:"literal",variants:[{begin:/\?\?\?/},{begin:/\?/,
contains:[a]}]};return{name:"Flix",keywords:{$pattern:e.IDENT_RE+"!?",
keyword:["alias","as","case","catch","checked_cast","checked_ecast","default","def","do","eff","else","enum","for","forA","forM","force","foreach","from","if","import","inject","inline","instance","into","java_get_field","java_new","java_set_field","law","lawful","lazy","let","match","mod","new","object","par","project","pub","query","redef","region","resume","sealed","select","solve","trait","try","type","typematch","unchecked_cast","unchecked_ecast","use","where","with","without","yield"],
keyword:["alias","as","case","catch","checked_cast","checked_ecast","default","def","do","eff","else","enum","for","forA","forM","force","foreach","from","if","import","inject","inline","instance","into","law","lawful","lazy","let","match","mod","new","object","par","project","pub","query","redef","region","resume","sealed","select","solve","struct","throw","trait","try","type","typematch","unchecked_cast","unchecked_ecast","unsafe","use","where","with","without","yield"],
literal:["()","true","false","Nil","Some","None","LessThan","EqualTo","GreaterThan","Ok","Err","null","static"],
type:["Unit","Bool","Char","Float32","Float64","Int8","Int16","Int32","Int64","String","BigInt"],
built_in:["debug","debug!","debug!!","IO","ef","ef1","ef2","Read","Write","Channel","Eq","PartialOrder","Order","Cmp","List","Map","Set","RedBlackTree","Result","Array","ToString","toString","flip","on","identity","fst","snd","swap",">>","|>","||>","!>","print","println","bug!","unreachable!","and","or","not","ref","deref"]
},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,t,r,i,{scope:"meta",
},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,t,i,r,{scope:"meta",
begin:"@[A-Za-z]+"},s]}}})();hljs.registerLanguage("flix",e)})();
38 changes: 19 additions & 19 deletions dist/highlight.min.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,10 @@ begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
;const s=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
;return r.contains.push({begin:h(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r
},v=k("//","$"),S=k("/\\*","\\*/"),R=k("#","$");var j=Object.freeze({
},S=k("//","$"),v=k("/\\*","\\*/"),R=k("#","$");var j=Object.freeze({
__proto__:null,APOS_STRING_MODE:M,BACKSLASH_ESCAPE:O,BINARY_NUMBER_MODE:{
scope:"number",begin:w,relevance:0},BINARY_NUMBER_RE:w,COMMENT:k,
C_BLOCK_COMMENT_MODE:S,C_LINE_COMMENT_MODE:v,C_NUMBER_MODE:{scope:"number",
C_BLOCK_COMMENT_MODE:v,C_LINE_COMMENT_MODE:S,C_NUMBER_MODE:{scope:"number",
begin:y,relevance:0},C_NUMBER_RE:y,END_SAME_AS_BEGIN:e=>Object.assign(e,{
"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
t.data._beginMatch!==e[1]&&t.ignoreMatch()}}),HASH_COMMENT_MODE:R,IDENT_RE:E,
Expand Down Expand Up @@ -185,26 +185,26 @@ F("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/hig
r=e,i=t),void 0===n&&(n=!0);const s={code:i,language:r};k("before:highlight",s)
;const o=s.result?s.result:E(s.language,s.code,n)
;return o.code=s.code,k("after:highlight",o),o}function E(e,n,r,s){
const c=Object.create(null);function l(){if(!k.keywords)return void S.addText(R)
const c=Object.create(null);function l(){if(!k.keywords)return void v.addText(R)
;let e=0;k.keywordPatternRe.lastIndex=0;let t=k.keywordPatternRe.exec(R),n=""
;for(;t;){n+=R.substring(e,t.index)
;const r=w.case_insensitive?t[0].toLowerCase():t[0],s=(i=r,k.keywords[i]);if(s){
const[e,i]=s
;if(S.addText(n),n="",c[r]=(c[r]||0)+1,c[r]<=7&&(j+=i),e.startsWith("_"))n+=t[0];else{
;if(v.addText(n),n="",c[r]=(c[r]||0)+1,c[r]<=7&&(j+=i),e.startsWith("_"))n+=t[0];else{
const n=w.classNameAliases[e]||e;u(t[0],n)}}else n+=t[0]
;e=k.keywordPatternRe.lastIndex,t=k.keywordPatternRe.exec(R)}var i
;n+=R.substring(e),S.addText(n)}function g(){null!=k.subLanguage?(()=>{
;n+=R.substring(e),v.addText(n)}function g(){null!=k.subLanguage?(()=>{
if(""===R)return;let e=null;if("string"==typeof k.subLanguage){
if(!i[k.subLanguage])return void S.addText(R)
;e=E(k.subLanguage,R,!0,v[k.subLanguage]),v[k.subLanguage]=e._top
if(!i[k.subLanguage])return void v.addText(R)
;e=E(k.subLanguage,R,!0,S[k.subLanguage]),S[k.subLanguage]=e._top
}else e=_(R,k.subLanguage.length?k.subLanguage:null)
;k.relevance>0&&(j+=e.relevance),S.__addSublanguage(e._emitter,e.language)
;k.relevance>0&&(j+=e.relevance),v.__addSublanguage(e._emitter,e.language)
})():l(),R=""}function u(e,t){
""!==e&&(S.startScope(t),S.addText(e),S.endScope())}function d(e,t){let n=1
""!==e&&(v.startScope(t),v.addText(e),v.endScope())}function d(e,t){let n=1
;const i=t.length-1;for(;n<=i;){if(!e._emit[n]){n++;continue}
const i=w.classNameAliases[e[n]]||e[n],r=t[n];i?u(r,i):(R=r,l(),R=""),n++}}
function h(e,t){
return e.scope&&"string"==typeof e.scope&&S.openNode(w.classNameAliases[e.scope]||e.scope),
return e.scope&&"string"==typeof e.scope&&v.openNode(w.classNameAliases[e.scope]||e.scope),
e.beginScope&&(e.beginScope._wrap?(u(R,w.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
R=""):e.beginScope._multi&&(d(e.beginScope,t),R="")),k=Object.create(e,{parent:{
value:k}}),k}function f(e,n,i){let r=((e,t)=>{const n=e&&e.exec(t)
Expand All @@ -218,7 +218,7 @@ const t=e[0],i=n.substring(e.index),r=f(k,e,i);if(!r)return ee;const s=k
u(t,k.endScope._wrap)):k.endScope&&k.endScope._multi?(g(),
d(k.endScope,e)):s.skip?R+=t:(s.returnEnd||s.excludeEnd||(R+=t),
g(),s.excludeEnd&&(R=t));do{
k.scope&&S.closeNode(),k.skip||k.subLanguage||(j+=k.relevance),k=k.parent
k.scope&&v.closeNode(),k.skip||k.subLanguage||(j+=k.relevance),k=k.parent
}while(k!==r.parent);return r.starts&&h(r.starts,e),s.returnEnd?0:t.length}
let x={};function y(i,s){const a=s&&s[0];if(R+=i,null==a)return g(),0
;if("begin"===x.type&&"end"===s.type&&x.index===s.index&&""===a){
Expand All @@ -236,18 +236,18 @@ if("illegal"===s.type&&""===a)return 1
;if(I>1e5&&I>3*s.index)throw Error("potential infinite loop, way more iterations than matches")
;return R+=a,a.length}const w=O(e)
;if(!w)throw K(a.replace("{}",e)),Error('Unknown language: "'+e+'"')
;const M=q(w);let N="",k=s||M;const v={},S=new p.__emitter(p);(()=>{const e=[]
;const M=q(w);let N="",k=s||M;const S={},v=new p.__emitter(p);(()=>{const e=[]
;for(let t=k;t!==w;t=t.parent)t.scope&&e.unshift(t.scope)
;e.forEach((e=>S.openNode(e)))})();let R="",j=0,A=0,I=0,T=!1;try{
if(w.__emitTokens)w.__emitTokens(n,S);else{for(k.matcher.considerAll();;){
;e.forEach((e=>v.openNode(e)))})();let R="",j=0,A=0,I=0,T=!1;try{
if(w.__emitTokens)w.__emitTokens(n,v);else{for(k.matcher.considerAll();;){
I++,T?T=!1:k.matcher.considerAll(),k.matcher.lastIndex=A
;const e=k.matcher.exec(n);if(!e)break;const t=y(n.substring(A,e.index),e)
;A=e.index+t}y(n.substring(A))}return S.finalize(),N=S.toHTML(),{language:e,
value:N,relevance:j,illegal:!1,_emitter:S,_top:k}}catch(t){
;A=e.index+t}y(n.substring(A))}return v.finalize(),N=v.toHTML(),{language:e,
value:N,relevance:j,illegal:!1,_emitter:v,_top:k}}catch(t){
if(t.message&&t.message.includes("Illegal"))return{language:e,value:Y(n),
illegal:!0,relevance:0,_illegalBy:{message:t.message,index:A,
context:n.slice(A-100,A+100),mode:t.mode,resultSoFar:N},_emitter:S};if(o)return{
language:e,value:Y(n),illegal:!1,relevance:0,errorRaised:t,_emitter:S,_top:k}
context:n.slice(A-100,A+100),mode:t.mode,resultSoFar:N},_emitter:v};if(o)return{
language:e,value:Y(n),illegal:!1,relevance:0,errorRaised:t,_emitter:v,_top:k}
;throw t}}function _(e,t){t=t||p.languages||Object.keys(i);const n=(e=>{
const t={value:Y(e),illegal:!1,relevance:0,_top:l,_emitter:new p.__emitter(p)}
;return t._emitter.addText(e),t})(e),r=t.filter(O).filter(N).map((t=>E(t,e,!1)))
Expand Down Expand Up @@ -316,7 +316,7 @@ contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i]},s={
scope:"title.function",beginKeywords:"def",end:/[(\[]/,excludeEnd:!0,
contains:[i]},o={scope:"literal",variants:[{begin:/\?\?\?/},{begin:/\?/,
contains:[i]}]};return{name:"Flix",keywords:{$pattern:e.IDENT_RE+"!?",
keyword:["alias","as","case","catch","checked_cast","checked_ecast","default","def","do","eff","else","enum","for","forA","forM","force","foreach","from","if","import","inject","inline","instance","into","java_get_field","java_new","java_set_field","law","lawful","lazy","let","match","mod","new","object","par","project","pub","query","redef","region","resume","sealed","select","solve","trait","try","type","typematch","unchecked_cast","unchecked_ecast","use","where","with","without","yield"],
keyword:["alias","as","case","catch","checked_cast","checked_ecast","default","def","do","eff","else","enum","for","forA","forM","force","foreach","from","if","import","inject","inline","instance","into","law","lawful","lazy","let","match","mod","new","object","par","project","pub","query","redef","region","resume","sealed","select","solve","struct","throw","trait","try","type","typematch","unchecked_cast","unchecked_ecast","unsafe","use","where","with","without","yield"],
literal:["()","true","false","Nil","Some","None","LessThan","EqualTo","GreaterThan","Ok","Err","null","static"],
type:["Unit","Bool","Char","Float32","Float64","Int8","Int16","Int32","Int64","String","BigInt"],
built_in:["debug","debug!","debug!!","IO","ef","ef1","ef2","Read","Write","Channel","Eq","PartialOrder","Order","Cmp","List","Map","Set","RedBlackTree","Result","Array","ToString","toString","flip","on","identity","fst","snd","swap",">>","|>","||>","!>","print","println","bug!","unreachable!","and","or","not","ref","deref"]
Expand Down
6 changes: 3 additions & 3 deletions src/flix.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,6 @@ export default function(hljs) {
"inline",
"instance",
"into",
"java_get_field",
"java_new",
"java_set_field",
"law",
"lawful",
"lazy",
Expand All @@ -122,12 +119,15 @@ export default function(hljs) {
"sealed",
"select",
"solve",
"struct",
"throw",
"trait",
"try",
"type",
"typematch",
"unchecked_cast",
"unchecked_ecast",
"unsafe",
"use",
"where",
"with",
Expand Down

0 comments on commit a5f80ba

Please sign in to comment.