// ĠCopyright Ġ 2 0 0 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġtraining . learn . lesson . general Ċ Ċ import Ġcom . intellij . code Insight . int ention . impl . Show Int ention Actions Handler Ċ import Ġcom . intellij . openapi . editor . impl . Editor Component Impl Ċ import Ġtraining . dsl .* Ċ import Ġtraining . dsl . Lesson Util . restore If Modified Or Moved Incorrect ly Ċ import Ġtraining . learn . Less ons Bundle Ċ import Ġtraining . learn . course . K Lesson Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ Ċ abstract Ġclass ĠContext Actions Lesson Ġ: ĠK Lesson (" context . actions ", ĠLess ons Bundle . message (" context . actions . lesson . name ")) Ġ{ ĊĠ Ġabstract Ġval Ġsample : ĠLess on Sample ĊĠ Ġabstract Ġval Ġwarning Quick Fix : ĠString ĊĠ Ġabstract Ġval Ġwarning Possible Area : ĠString ĊĊĠ Ġabstract Ġval Ġintention Text : ĠString ĊĠ Ġabstract Ġval Ġintention Caret : ĠString ĊĠ Ġabstract Ġval Ġintention Possible Area : ĠString ĊĊĠ Ġoverride Ġval Ġlesson Content : ĠLess on Context . () Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠ Ġprepare Sample ( sample ) ĊĊĠĠĠ Ġif Ġ( Task TestContext . in Test Mode ) Ġ{ ĊĠĠĠĠĠ Ġwait Before Continue ( 1 0 0 0 ) ĊĊĠĠĠĠĠ Ġ// ĠFor Ġsome Ġreason Ġthere Ġis Ġno Ġnecessary Ġhot fix Ġin Ġintent ions , Ġneed Ġto Ġforce ĠIDE Ġto Ġupdate Ġit ĊĠĠĠĠĠ Ġtask Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstep Ġ= ĠCompletableFuture < Boolean >() ĊĠĠĠĠĠĠĠ Ġadd Step ( step ) ĊĠĠĠĠĠĠĠ Ġtest Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġtype (" Ġ") ĊĠĠĠĠĠĠĠĠĠ Ġinvoke Action Via Shortcut (" BACK _ SPACE ") ĊĠĠĠĠĠĠĠĠĠ Ġtask Invoke Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstep . complete ( true ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġshow Intent ions TaskId : ĠTask Context . TaskId ĊĠĠĠ Ġtask (" Show Int ention Actions ") Ġ{ ĊĠĠĠĠĠ Ġshow Intent ions TaskId Ġ= ĠtaskId ĊĠĠĠĠĠ Ġtext ( Less ons Bundle . message (" context . actions . invoke . intent ions . for . warning ", ĠLess on Util . action Name ( it ), Ġaction ( it ))) ĊĠĠĠĠĠ Ġtrigger By ListItem And Highlight ( highlight Border Ġ= Ġtrue , Ġhighlight Inside Ġ= Ġfalse ) Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠ Ġitem . toString (). contains ( warning Quick Fix ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġrestore If Modified Or Moved Incorrect ly ( warning Possible Area ) ĊĠĠĠĠĠ Ġtest Ġ{ ĊĠĠĠĠĠĠĠ Ġactions ( it ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġbefore Ġ= Ġ"" ĊĠĠĠ Ġfun ĠTask Runtime Context . update Before () Ġ{ ĊĠĠĠĠĠ Ġbefore Ġ= Ġeditor . document . text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprepare Runtime Task Ġ{ ĊĠĠĠĠĠ Ġupdate Before () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtask Ġ{ ĊĠĠĠĠĠ Ġtext ( Less ons Bundle . message (" context . actions . fix . warning ", Ġstrong ( warning Quick Fix ))) ĊĠĠĠĠĠ Ġstate Check Ġ{ ĊĠĠĠĠĠĠĠ Ġ( inside Int ention () Ġ&& Ġbefore Ġ!= Ġeditor . document . text ). also Ġ{ Ġupdate Before () Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġrestore If Intent ions Popup Closed ( show Intent ions TaskId ) ĊĠĠĠĠĠ Ġtest Ġ{ ĊĠĠĠĠĠĠĠ Ġide Frame Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġj List Contains ( warning Quick Fix ). item ( warning Quick Fix ). double Click () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcaret ( int ention Caret ) ĊĠĠĠ Ġtask (" Show Int ention Actions ") Ġ{ ĊĠĠĠĠĠ Ġshow Intent ions TaskId Ġ= ĠtaskId ĊĠĠĠĠĠ Ġtext ( Less ons Bundle . message (" context . actions . invoke . general . intent ions ", ĠLess on Util . action Name ( it ), Ġaction ( it ))) ĊĠĠĠĠĠ Ġtrigger By ListItem And Highlight ( highlight Border Ġ= Ġtrue , Ġhighlight Inside Ġ= Ġfalse ) Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠ Ġitem . toString (). contains ( int ention Text ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġrestore If Modified Or Moved Incorrect ly ( int ention Possible Area ) ĊĠĠĠĠĠ Ġtest Ġ{ Ġactions ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprepare Runtime Task Ġ{ ĊĠĠĠĠĠ Ġbefore Ġ= Ġeditor . document . text ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtask Ġ{ ĊĠĠĠĠĠ Ġtext ( Less ons Bundle . message (" context . actions . apply . int ention ", Ġstrong ( int ention Text ))) ĊĠĠĠĠĠ Ġstate Check Ġ{ ĊĠĠĠĠĠĠĠ Ġ( inside Int ention () Ġ&& Ġbefore Ġ!= Ġeditor . document . text ). also Ġ{ Ġupdate Before () Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġrestore If Intent ions Popup Closed ( show Intent ions TaskId ) ĊĠĠĠĠĠ Ġtest Ġ{ ĊĠĠĠĠĠĠĠ Ġide Frame Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġj List Contains ( int ention Text ). item ( int ention Text ). double Click () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtext ( Less ons Bundle . message (" context . actions . refactor ings . promotion ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLess on Util . action Name (" Show Int ention Actions "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrong ( Less ons Bundle . message (" refactor ings . module . name ")) )) ĊĊĠĠĠ Ġfirst Lesson Completed Message () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġinside Int ention () Ġ= ĠThread . currentThread (). stack Trace . any Ġ{ ĊĠĠĠ Ġit . className . contains ( Show Int ention Actions Handler :: class . simple Name !! ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠTask Context . restore If Intent ions Popup Closed ( restore Id : ĠTask Context . TaskId ) Ġ{ ĊĠĠĠ Ġrestore State ( restore Id Ġ= Ġrestore Id , Ġdelay Millis Ġ= Ġdefault Restore Delay ) Ġ{ ĊĠĠĠĠĠ Ġfocus Owner Ġis ĠEditor Component Impl ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ