package Ġorg . jb . cce Ċ Ċ import Ġcom . intellij . ide . highlighter . Java FileType Ċ import Ġcom . intellij . openapi . action System . An Action Ċ import Ġcom . intellij . openapi . action System . An ActionEvent Ċ import Ġcom . intellij . psi . search . FileType Index Ċ import Ġcom . intellij . psi . search . Global Search Scope Ċ import Ġcom . intellij . util . indexing . File Based Index Ċ import Ġorg . antlr . v 4 . runtime . Buffered Token Stream Ċ import Ġorg . antlr . v 4 . runtime . Char Streams Ċ import Ġorg . jb . cce . actions . Action Ċ import Ġorg . jb . cce . actions . generate Actions Ċ import Ġorg . jb . cce . interpret ator . Completion Invoker Impl Ċ import Ġjava . util . stream . Collectors Ċ Ċ class ĠC ac luc ate Completion ForAll Project Files Action Ġ: ĠAn Action () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠactionPerformed ( e : ĠAn ActionEvent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġe ?. project Ġ?: return ĊĠĠĠĠĠĠĠ Ġval Ġcontaining Files Ġ= ĠFile Based Index . getInstance (). get Containing Files ( FileType Index . NAME , ĠJava FileType . INSTANCE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Search Scope . project Scope ( project )) ĊĠĠĠĠĠĠĠ Ġval Ġgenerated Actions Ġ= Ġmutable ListOf < List < Action >>() ĊĠĠĠĠĠĠĠ Ġfor Ġ( java File Ġin Ġcontaining Files ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlexer Ġ= ĠJava 8 Lexer ( Char Streams . from FileName ( java File . path )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠJava 8 Parser ( Buffered Token Stream ( lexer )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtree Ġ= ĠJava Visitor (). build Unified Ast ( java File . path , Ġparser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerated Actions . add ( generate Actions ( tree )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcompletion Invoker Ġ= ĠCompletion Invoker Impl ( e . project !! ) ĊĠĠĠĠĠĠĠ Ġval Ġinterpret ator Ġ= ĠInter pret ator ( completion Invoker ) ĊĠĠĠĠĠĠĠ Ġval Ġactions Ġ= Ġgenerated Actions . stream () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġl Ġ-> Ġl . stream () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ( Collectors . toList ()) ĊĠĠĠĠĠĠĠ Ġval Ġcomplet ions Ġ= Ġinterpret ator . interpret ( actions ) ĊĠĠĠĠĠĠĠ Ġprintln (" Completion Ġquality Ġevaluation Ġfor Ġall Ġproject ") ĊĠĠĠĠĠĠĠ Ġprintln (" Precision ĠMetric Ġvalue Ġ= Ġ" Ġ+ ĠPrecision Metrics Evaluator . evaluate ( comp letions )) ĊĠĠĠĠĠĠĠ Ġprintln (" Re call ĠMetric Ġvalue Ġ= Ġ" Ġ+ ĠRe call Metrics Evaluator . evaluate ( comp letions )) ĊĠĠĠĠĠĠĠ Ġprintln (" F Measure ĠMetric Ġvalue Ġ= Ġ" Ġ+ ĠF Measure Metrics Evaluator . evaluate ( comp letions )) ĊĠĠĠ Ġ} Ċ }