package Ġch . de let escape . highlight . core Ċ Ċ import Ġch . de let escape . highlight . languages .* Ċ Ċ /** Ċ Ġ* ĠMain Ġclass Ġfor Ġcode Ġsyntax Ġhighlighting . ĠContains Ġall Ġsupported Ġlanguages Ċ Ġ* Ġand Ġtwo Ġmain Ġmethods . ĠUse Ġ{@ link ĠHighlight er # highlight ( String , ĠString )} Ġif Ċ Ġ* Ġcode Ġlanguage Ġis Ġknown Ġor Ġuse Ġ{@ link ĠHighlight er # highlight Auto ( String , ĠString []) } Ċ Ġ* Ġto Ġautomatically Ġdetect Ġcode Ġlanguage . Ċ Ġ*/ Ċ class ĠHighlight er ( private Ġval Ġrenderer Factory : ĠStyle Renderer Factory ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlanguage Map Ġ= Ġmutable Map Of < String , ĠMode >() ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġlanguages Ġ= Ġmutable Set Of < String >() ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// START ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" cpp ", Ġcpp ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" 1 c ", Ġ` 1 c ` ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ab nf ", Ġab nf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" access log ", Ġaccess log ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" action script ", Ġaction script ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ada ", Ġada ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ange l script ", Ġan gel script ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" apache ", Ġapache ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" apple script ", Ġapple script ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ar cade ", Ġar cade ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" arduino ", Ġ arduino ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" arm asm ", Ġar mas m ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" asci id oc ", Ġasci id oc ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" aspect j ", Ġaspect j ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" auto hot key ", Ġauto hot key ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" auto it ", Ġauto it ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" avr asm ", Ġav r asm ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" awk ", Ġawk ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ax ap ta ", Ġax ap ta ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" bash ", Ġbash ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" basic ", Ġbasic ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" bn f ", Ġb nf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" brain f uck ", Ġbrain f uck ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" cal ", Ġcal ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" cap n proto ", Ġcap n proto ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ce ylon ", Ġc ey lon ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" clean ", Ġclean ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" clojure ", Ġclo jure ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" clojure - repl ", Ġ` clojure - repl ` ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" cmake ", Ġcmake ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" co ffe es cript ", Ġc off ees cript ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" co q ", Ġco q ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" cos ", Ġcos ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" crm sh ", Ġc rm sh ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" cs ", Ġcs ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" csp ", Ġc sp ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" css ", Ġcss ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" d ", Ġd ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" dart ", Ġdart ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" del phi ", Ġdel phi ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" diff ", Ġdiff ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" django ", Ġdjango ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" dns ", Ġdns ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" dockerfile ", Ġdocker file ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" dos ", Ġdos ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ds config ", Ġds config ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" dts ", Ġd ts ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" dust ", Ġdust ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" eb nf ", Ġe bn f ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" elixir ", Ġel ix ir ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" elm ", Ġelm ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" erb ", Ġer b ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" erlang ", Ġerlang ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" erlang - repl ", Ġ` erlang - repl ` ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" excel ", Ġexcel ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" fix ", Ġfix ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" flix ", Ġf lix ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" fortran ", Ġfor tran ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" f sharp ", Ġf sharp ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" g ams ", Ġg ams ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" g code ", Ġg code ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" g her kin ", Ġg her kin ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" glsl ", Ġglsl ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" gml ", Ġg ml ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" go ", Ġgo ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" go lo ", Ġgo lo ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" gradle ", Ġgradle ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" groovy ", Ġgro ovy ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" h aml ", Ġh aml ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" handle bars ", Ġhandle bars ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" haskell ", Ġh askell ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" h axe ", Ġh axe ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" h sp ", Ġh sp ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" html bars ", Ġhtml bars ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" http ", Ġhttp ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" hy ", Ġhy ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" inform 7 ", Ġinform 7 ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ini ", Ġini ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ir pf 9 0 ", Ġir pf 9 0 ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" is bl ", Ġis bl ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" java ", Ġjava ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" javascript ", Ġjavascript ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" jboss - cli ", Ġ` jboss - cli ` ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" json ", Ġjson ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" julia ", Ġj ulia ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" julia - repl ", Ġ` julia - repl ` ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" kotlin ", Ġkt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" lass o ", Ġ lass o ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ld if ", Ġld if ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" leaf ", Ġleaf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" lisp ", Ġl isp ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" live code server ", Ġlive code server ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" li ves cript ", Ġlives cript ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" llvm ", Ġllvm ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" l sl ", Ġl sl ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" lua ", Ġlua ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" make file ", Ġmake file ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" markdown ", Ġmarkdown ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" matlab ", Ġmat lab ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" max ima ", Ġmax ima ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" mel ", Ġmel ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" mer cury ", Ġmer cury ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" m ips asm ", Ġm ips asm ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" m izar ", Ġm izar ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" moj olic ious ", Ġmo j olic ious ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" monkey ", Ġmonkey ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" moon script ", Ġmoon script ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" n 1 ql ", Ġn 1 ql ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" nginx ", Ġnginx ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" nim rod ", Ġn im rod ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" nix ", Ġnix ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ns is ", Ġns is ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" object ivec ", Ġobject ivec ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ocaml ", Ġoc aml ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" open sc ad ", Ġopen sc ad ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" oxy gene ", Ġo xy gene ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" parser 3 ", Ġparser 3 ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" perl ", Ġperl ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" pf ", Ġpf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" php ", Ġphp ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" plaintext ", Ġplaintext ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" p ony ", Ġp ony ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" powershell ", Ġpow ershell ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" processing ", Ġprocessing ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" profile ", Ġprofile ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" pro log ", Ġpro log ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" properties ", Ġproperties ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" protobuf ", Ġprotobuf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" puppet ", Ġp uppet ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" pure basic ", Ġpure basic ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" python ", Ġpython ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" q ", Ġq ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" q ml ", Ġq ml ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" r ", Ġr ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" rib ", Ġ rib ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ro bo conf ", Ġro bo conf ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" router os ", Ġrouter os ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" r sl ", Ġr sl ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ruby ", Ġruby ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" rules language ", Ġrules language ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" rust ", Ġrust ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" sas ", Ġs as ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" scala ", Ġscala ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" scheme ", Ġscheme ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" sc il ab ", Ġsc il ab ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" scss ", Ġs css ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" shell ", Ġshell ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" sm ali ", Ġsm ali ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" small talk ", Ġsmall talk ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" s ml ", Ġs ml ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" sq f ", Ġsq f ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" sql ", Ġsql ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" stan ", Ġstan ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" st ata ", Ġst ata ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" step 2 1 ", Ġstep 2 1 ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" stylus ", Ġst yl us ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" sub unit ", Ġsub unit ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" swift ", Ġswift ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" tag gers cript ", Ġtag gers cript ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" tap ", Ġtap ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" tcl ", Ġt cl ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" tex ", Ġtex ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" thrift ", Ġthrift ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" tp ", Ġtp ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" twig ", Ġtw ig ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" typescript ", Ġtypescript ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" val a ", Ġval a ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" vb net ", Ġvb net ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" vb script ", Ġvb script ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" vb script - html ", Ġ` vb script - html ` ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ver ilog ", Ġver ilog ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" vh dl ", Ġv hdl ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" vim ", Ġvim ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" x 8 6 asm ", Ġx 8 6 asm ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" xl ", Ġxl ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" xml ", Ġxml ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" x query ", Ġx query ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" yaml ", Ġyaml ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Language (" ze ph ir ", Ġze ph ir ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// END ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfind Language ( name : ĠString ) Ġ= Ġlanguage Map [ name ] ĊĊĠĠĠĠĠĠĠ Ġfun Ġhas Language ( name : ĠString ) Ġ= Ġlanguage Map . containsKey ( name ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġregister Language ( name : ĠString , Ġlanguage : ĠMode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguages Ġ+= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Map Ġ+= Ġname Ġto Ġlanguage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Map Ġ+= Ġlanguage . aliases . associate With Ġ{ Ġlanguage Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCore Ġhighlighting Ġfunction . ĠAccept s Ġa Ġlanguage Ġname , Ġor Ġan Ġalias , Ġand Ġa ĊĠĠĠĠ Ġ* Ġstring Ġwith Ġthe Ġcode Ġto Ġhighlight . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlanguage Name Ġlanguage Ġname ĊĠĠĠĠ Ġ* Ġ@ param Ġcode Ġcode Ġstring Ġto Ġhighlight ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġgiven Ġcode Ġhighlight Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhighlight ( language Name : ĠString , Ġcode : ĠString , Ġgrace ful : ĠBoolean Ġ= Ġtrue ): ĠHighlight Result Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠFind ĠLanguage ĊĠĠĠĠĠĠĠ Ġval Ġlanguage Ġ= Ġfind Language ( language Name ) Ġ?: Ġreturn ĠHighlight Result ( 0 , Ġnull , Ġcode ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠParse ĊĠĠĠĠĠĠĠ Ġval Ġrenderer Ġ= Ġrenderer Factory . create ( language Name ) ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠHighlight Parser ( language , Ġrenderer Factory , Ġrenderer ) ĊĠĠĠĠĠĠĠ Ġval Ġre levance Ġ= Ġparser . highlight ( code , Ġfalse , Ġnull , Ġgrace ful ) ĊĠĠĠĠĠĠĠ Ġreturn ĠHighlight Result ( re levance , Ġlanguage Name , Ġrenderer . getResult ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHigh lighting Ġwith Ġlanguage Ġdetection . ĠAccept s Ġa Ġstring Ġwith Ġthe Ġcode Ġto ĊĠĠĠĠ Ġ* Ġhighlight . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcode Ġcode Ġstring Ġto Ġhighlight ĊĠĠĠĠ Ġ* Ġ@ param Ġlanguage Subset Ġlist Ġof Ġlanguages Ġfor Ġchecking Ġor Ġempty Ġlist Ġfor Ġall Ġknown Ġlanguages ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġgiven Ġcode Ġhighlight Ġresult ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġhighlight Auto ( code : ĠString , Ġlanguage Subset : ĠList < String >? Ġ= Ġnull , Ġgrace ful : ĠBoolean Ġ= Ġtrue ): ĠHighlight Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlang s Ġ= Ġif Ġ( language Subset . isNull OrEmpty ()) Ġlanguages Ġelse Ġlanguage Subset ĊĊĠĠĠĠĠĠĠ Ġvar Ġbest Re levance Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġvar Ġbest Language Name : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġresult : ĠCharSequence ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfor Ġ( language Name Ġin Ġlang s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlanguage Ġ= Ġfind Language ( language Name ) Ġ?: Ġcontinue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrenderer Ġ= Ġrenderer Factory . create ( language Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠHighlight Parser ( language , Ġrenderer Factory , Ġrenderer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġre levance Ġ= Ġparser . highlight ( code , Ġfalse , Ġnull , Ġgrace ful ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( re levance Ġ> Ġbest Re levance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbest Re levance Ġ= Ġre levance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbest Language Name Ġ= Ġlanguage Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġrenderer . getResult () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠHighlight Result ( best Re levance , Ġbest Language Name , Ġresult Ġ?: Ġcode ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠResult Ġof Ġcode Ġsyntax Ġhighlighting ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠHighlight Result ( ĊĠĠĠĠĠĠĠ Ġval Ġre levance : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġlanguage : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠCharSequence ĊĠĠĠ Ġ) Ċ } Ċ