package Ġorg . jav acs . kt . code action Ċ Ċ import Ġorg . eclipse . lsp 4 j .* Ċ import Ġorg . eclipse . lsp 4 j . jsonrpc . messages . Either Ċ import Ġorg . jav acs . kt . Compiled File Ċ import Ġorg . jav acs . kt . code action . quick fix . Implement Abstract Functions Quick Fix Ċ import Ġorg . jav acs . kt . code action . quick fix . Add Missing Imports Quick Fix Ċ import Ġorg . jav acs . kt . command . JAVA _ TO _ K OT LIN _ COMMAND Ċ import Ġorg . jav acs . kt . util . to Path Ċ import Ġorg . jav acs . kt . index . Symbol Index Ċ Ċ val ĠQU ICK _ FIX ES Ġ= ĠlistOf ( ĊĠĠĠ ĠImplement Abstract Functions Quick Fix (), ĊĠĠĠ ĠAdd Missing Imports Quick Fix () Ċ ) Ċ Ċ fun Ġcode Actions ( file : ĠComp iled File , Ġindex : ĠSymbol Index , Ġrange : ĠRange , Ġcontext : ĠCode Action Context ): ĠList < Either < Command , ĠCode Action >> Ġ{ ĊĠĠĠ Ġ// Ġcontext . only Ġdoes Ġnot Ġwork Ġwhen Ġclient Ġis Ġem acs ... ĠĊĠĠĠ Ġval Ġrequested Kinds Ġ= Ġcontext . only Ġ?: ĠlistOf ( Code Action Kind . Ref actor , ĠCode Action Kind . Quick Fix ) ĊĠĠĠ Ġreturn Ġrequested Kinds . map Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCode Action Kind . Ref actor Ġ-> Ġget Ref actors ( file , Ġrange ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCode Action Kind . Quick Fix Ġ-> Ġget Quick Fixes ( file , Ġindex , Ġrange , Ġcontext . diagnostics ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠlistOf () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. flatten () Ċ } Ċ Ċ fun Ġget Ref actors ( file : ĠComp iled File , Ġrange : ĠRange ): ĠList < Either < Command , ĠCode Action >> Ġ{ ĊĠĠĠ Ġval Ġhas Selection Ġ= Ġ( range . end . line Ġ- Ġrange . start . line ) Ġ!= Ġ 0 Ġ|| Ġ( range . end . character Ġ- Ġrange . start . character ) Ġ!= Ġ 0 ĊĠĠĠ Ġreturn Ġif Ġ( has Selection ) Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . for Left < Command , ĠCode Action >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand (" Convert ĠJava Ġto ĠKotlin ", ĠJAVA _ TO _ K OT LIN _ COMMAND , ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile . parse . to Path (). to Uri (). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrange ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġget Quick Fixes ( file : ĠComp iled File , Ġindex : ĠSymbol Index , Ġrange : ĠRange , Ġdiagnostics : ĠList < Diagnostic >): ĠList < Either < Command , ĠCode Action >> Ġ{ ĊĠĠĠ Ġreturn ĠQU ICK _ FIX ES . flatMap Ġ{ ĊĠĠĠĠĠĠĠ Ġit . compute ( file , Ġindex , Ġrange , Ġdiagnostics ) ĊĠĠĠ Ġ} Ċ } Ċ