package Ġorg . elixir _ lang . spell _ checking . alias Ċ Ċ import Ġcom . intellij . openapi . util . Text Range Ċ Ċ object ĠSplit ter Ġ: Ġorg . elixir _ lang . spell _ checking . Splitter () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġword Text Ranges ( text : ĠString , Ġrange : ĠText Range ): ĠList < Text Range > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . word Text Ranges ( text , Ġrange ). flatMap Ġ{ Ġword Text Range Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsplit By Camel Case ( text , Ġword Text Range ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠLike ĠApache ĠCommons ĠStringUtils . split By Character Type Camel Case ĊĠĠĠĠĠĠ Ġ( https :// commons . apache . org / proper / commons - lang / javadoc s / api - 3 . 1 / src - html / org / apache / commons / lang 3 / StringUtils . html # line . 3 1 6 4 ), ĊĠĠĠĠĠĠ Ġbut Ġit Ġreturns Ġon ĠText Ranges Ġinstead Ġof ĠString Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġsplit By Camel Case ( text : ĠString , Ġrange : ĠText Range ): ĠList < Text Range > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtoken Start Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Type Ġ= ĠCharacter . getType ( text . code Point At ( range . start Offset )) ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġmutable ListOf < Text Range >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( offset Ġin Ġrange . start Offset Ġ+ Ġ 1 .. range . end Offset ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( offset Ġ>= Ġtext . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Text Range ( token Start , Ġoffset )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠCharacter . getType ( text . code Point At ( offset )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== Ġcurrent Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠCharacter . LOWER CASE _ LET TER . toInt () Ġ&& Ġcurrent Type Ġ== ĠCharacter . UPPER CASE _ LET TER . toInt ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Token Start Ġ= Ġoffset Ġ- Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Token Start Ġ!= Ġtoken Start ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Text Range ( token Start , Ġnew Token Start )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Start Ġ= Ġnew Token Start ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Text Range ( token Start , Ġoffset )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Start Ġ= Ġoffset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Type Ġ= Ġtype ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} Ċ } Ċ