@ file : Jvm Name (" Task File Ext ") Ċ Ċ package Ġcom . jetbrains . edu . learning . course Format . ext Ċ Ċ import Ġcom . intellij . openapi . application . run Read Action Ċ import Ġcom . intellij . openapi . editor . Document Ċ import Ġcom . intellij . openapi . file Editor . File Document Manager Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . problems . W olf The Problem Solver Ċ import Ġcom . jetbrains . edu . learning . E du Utils Ċ import Ġcom . jetbrains . edu . learning . course Dir Ċ import Ġcom . jetbrains . edu . learning . course Format . Task File Ċ import Ġcom . jetbrains . edu . learning . course Format . Task File . LOG Ċ import Ġcom . jetbrains . edu . learning . yaml . Yaml Format Synchron izer ĊĊ Ċ fun ĠTask File . getDocument ( project : ĠProject ): ĠDocument ? Ġ{ ĊĠ Ġval Ġvirtual File Ġ= Ġget Virtual File ( project ) Ġ?: Ġreturn Ġnull ĊĠ Ġreturn Ġrun Read Action Ġ{ ĠFile Document Manager . getInstance (). getDocument ( virtual File ) Ġ} Ċ } Ċ Ċ fun ĠTask File . get Virtual File ( project : ĠProject ): ĠVirtual File ? Ġ{ ĊĠ Ġval Ġtask Dir Ġ= Ġtask . get Dir ( project . course Dir ) Ġ?: Ġreturn Ġnull ĊĠ Ġreturn ĠE du Utils . find Task File In Dir ( this , Ġtask Dir ) Ċ } Ċ Ċ fun ĠTask File . course () Ġ= Ġtask ?. lesson ?. course Ċ Ċ fun ĠTask File . getText ( project : ĠProject ): ĠString ? Ġ= Ġget Document ( project )?. text Ċ Ċ val ĠTask File . is Test File : ĠBoolean ĊĠ Ġget () Ġ{ ĊĠĠĠ Ġval Ġconfigur ator Ġ= Ġtask . course . configur ator Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġconfigur ator . is Test File ( task , Ġname ) ĊĠ Ġ} ĊĊ Ċ fun ĠTask File . revert ( project : ĠProject ) Ġ{ ĊĠ Ġif Ġ(! reset Document ( project )) Ġ{ ĊĠĠĠ Ġreturn ĊĠ Ġ} ĊĊĠ Ġanswer Place holders . forEach Ġ{ Ġanswer Placeholder Ġ-> ĊĠĠĠ Ġanswer Placeholder . reset ( true ) ĊĠ Ġ} ĊĊĠ Ġval Ġvirtual File Ġ= Ġget Virtual File ( project ) ĊĠ Ġif Ġ( virtual File Ġ!= Ġnull ) Ġ{ ĊĠĠĠ ĠW olf The Problem Solver . getInstance ( project ). clear Problems ( virtual File ) ĊĠ Ġ} ĊĠ Ġis Highlight Errors Ġ= Ġfalse ĊĠ ĠYaml Format Synchron izer . save Item ( task ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ return Ġtrue Ġif Ġdocument Ġrelated Ġto Ġtask Ġfile Ġhas Ġbeen Ġreset , Ġotherwise Ġ- Ġfalse Ċ Ġ*/ Ċ private Ġfun ĠTask File . reset Document ( project : ĠProject ): ĠBoolean Ġ{ ĊĠ Ġval Ġdocument Ġ= Ġget Document ( project ) ĊĠ Ġ// ĠNote , Ġnullable Ġdocument Ġis Ġvalid Ġsituation Ġin Ġcase Ġof Ġbinary Ġfiles . ĊĠ Ġif Ġ( document Ġ== Ġnull ) Ġ{ ĊĠĠĠ ĠLOG . warn (" Failed Ġto Ġfind Ġdocument Ġfor Ġtask Ġfile Ġ$ name ") ĊĠĠĠ Ġreturn Ġfalse ĊĠ Ġ} ĊĊĠ Ġis Track Changes Ġ= Ġfalse ĊĠ Ġdocument . setText ( text ) ĊĠ Ġis Track Changes Ġ= Ġtrue ĊĠ Ġreturn Ġtrue Ċ }