package Ġorg . ice 1 0 0 0 . tt . editing . vo ile Ċ Ċ import Ġcom . intellij . code Insight . completion . Completion Contributor Ċ import Ġcom . intellij . code Insight . completion . Completion Type Ċ import Ġcom . intellij . lang . Brace Pair Ċ import Ġcom . intellij . lang . annotation . Annotation Holder Ċ import Ġcom . intellij . lang . annotation . Annot ator Ċ import Ġcom . intellij . lang . cache Builder . Default Words Scanner Ċ import Ġcom . intellij . openapi . project . D umb Aware Ċ import Ġcom . intellij . patterns . Platform Patterns Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . tree . Token Set Ċ import Ġicons . T TI cons Ċ import Ġorg . ice 1 0 0 0 . tt . editing . Simple Provider Ċ import Ġorg . ice 1 0 0 0 . tt . editing . TT Brace Matcher Ċ import Ġorg . ice 1 0 0 0 . tt . editing . TT Find Usage s Provider Ċ import Ġorg . ice 1 0 0 0 . tt . editing . make Keywords Completion Ċ import Ġorg . ice 1 0 0 0 . tt . psi . red pr l . red P rl Lexer Ċ import Ġorg . ice 1 0 0 0 . tt . psi . vo ile .* Ċ Ċ class ĠVo ile Brace Matcher Ġ: ĠTT Brace Matcher () Ġ{ Ċ ĉ private Ġcompanion Ġobject ĠPair s Ġ{ Ċĉ ĉ private Ġval ĠPA IR S Ġ= ĠarrayOf ( Ċĉĉ ĉ Brace Pair ( Vo ile Types . L BRACE , ĠVo ile Types . R BRACE , Ġfalse ), Ċĉĉ ĉ Brace Pair ( Vo ile Types . L BRACE 2 , ĠVo ile Types . R BRACE 2 , Ġfalse ), Ċĉĉ ĉ Brace Pair ( Vo ile Types . LP AREN , ĠVo ile Types . RP AREN , Ġfalse )) Ċ ĉ } ĊĊ ĉ override Ġfun Ġget Pairs () Ġ= ĠPA IR S Ċ } Ċ Ċ class ĠVo ile Find Usage s Provider Ġ: ĠTT Find Usage s Provider () Ġ{ Ċ ĉ override Ġfun Ġget Words Scanner () Ġ= ĠDefault Words Scanner ( red P rl Lexer (), ĠVo ile TokenType . IDENT IFI ERS , ĠVo ile TokenType . COMMENTS , ĠToken Set . EMPTY ) Ċ } Ċ Ċ class ĠVo ile Annot ator Ġ: ĠAnnot ator Ġ{ Ċ ĉ override Ġfun Ġannotate ( element : ĠPsi Element , Ġholder : ĠAnnotation Holder ) Ġ{ Ċĉ ĉ when Ġ( element ) Ġ{ Ċĉĉ ĉ is ĠVo ile Name Decl Mixin Ġ-> Ġname Decl Mixin ( element , Ġholder ) Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ private Ġfun Ġname Decl Mixin ( element : ĠVo ile Name Decl Mixin , Ġholder : ĠAnnotation Holder ) Ġ{ Ċĉ ĉ val Ġparent Ġ= Ġelement . parent Ġ?: Ġreturn Ċĉ ĉ if Ġ( parent Ġis ĠVo ile Implementation Ġ|| Ġparent Ġis ĠVo ile Signature ) Ġ{ Ċĉĉ ĉ holder . create Info Annotation ( element , Ġnull ). text Attributes Ġ= ĠVo ile Highlight er . FUNCTION _ NAME Ċĉ ĉ } Ċ ĉ } Ċ } Ċ Ċ class ĠVo ile Completion Contributor Ġ: ĠCompletion Contributor (), ĠD umb Aware Ġ{ Ċ ĉ private Ġval Ġkeywords Ġ= Ġmake Keywords Completion ( T TI cons . VO ILE , ĠlistOf ( Ċĉ ĉ " Sum ", Ġ" Rec ", Ġ" Type ", Ġ" let ", Ġ" val ", Ġ" case ", Ġ" or ", Ġ" wh atever " Ċ ĉ )) ĊĊ ĉ init Ġ{ Ċĉ ĉ extend ( Completion Type . BASIC , ĠPlatform Patterns . psi Element (), ĠSimple Provider ( keywords )) Ċ ĉ } Ċ } Ċ