package Ġnl . h ann ah sten . tex ify idea . ins pe ctions . latex Ċ Ċ import Ġcom . intellij . code Inspection . Inspection Manager Ċ import Ġcom . intellij . code Inspection . Local Quick Fix Ċ import Ġcom . intellij . code Inspection . Problem Descriptor Ċ import Ġcom . intellij . code Inspection . Problem Highlight Type Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġnl . h ann ah sten . tex ify idea . insight . Insight Group Ċ import Ġnl . h ann ah sten . tex ify idea . ins pe ctions . Tex ify Inspection Base Ċ import Ġnl . h ann ah sten . tex ify idea . psi . Lat ex Comment Ċ import Ġnl . h ann ah sten . tex ify idea . psi . Lat ex Normal Text Ċ import Ġnl . h ann ah sten . tex ify idea . util .* Ċ import Ġnl . h ann ah sten . tex ify idea . util . files . document Ċ import Ġkotlin . math . min Ċ Ċ /** Ċ Ġ* Ġ@ author ĠH ann ah ĠS che lle ken s Ċ Ġ*/ Ċ open Ġclass ĠLat ex Line Break Inspection Ġ: ĠTex ify Inspection Base () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġinspection Group Ġ= ĠIns ight Group . LAT EX ĊĊĠĠĠ Ġoverride Ġfun Ġget DisplayName () Ġ= Ġ" Start Ġsentences Ġon Ġa Ġnew Ġline " ĊĊĠĠĠ Ġoverride Ġval Ġinspection Id Ġ= Ġ" Line Break " ĊĊĠĠĠ Ġoverride Ġfun Ġinspect File ( file : ĠPsi File , Ġmanager : ĠIns pection Manager , Ġis O nt he Fly : ĠBoolean ): ĠList < Problem Descriptor > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdescriptors Ġ= Ġdescriptor List () ĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġfile . document () Ġ?: Ġreturn Ġdescriptors ĊĊĠĠĠĠĠĠĠ Ġval Ġtexts Ġ= Ġfile . children OfType ( Lat ex Normal Text :: class ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( text : ĠLat ex Normal Text Ġin Ġtexts ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text . in Math Context () Ġ|| Ġtext . has Parent ( Lat ex Comment :: class )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= ĠMagic . Pattern . sentence End . matcher ( text . text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( matcher . find ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġtext . text Offset Ġ+ Ġmatcher . end () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠlineNumber Ġ= Ġdocument . get LineNumber ( offset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Line Ġ= Ġdocument . getLine End Offset ( line Number ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptors . add ( manager . create Problem Descriptor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText Range ( matcher . start (), Ġmin ( text . text Length , Ġmatcher . end () Ġ+ Ġ( end Line Ġ- Ġoffset ))), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sentence Ġdoes Ġnot Ġstart Ġon Ġa Ġnew Ġline ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProblem Highlight Type . WE AK _ WARNING , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis O nt he Fly , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIns pection Fix () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdescriptors ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ author ĠH ann ah ĠS che lle ken s ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠIns pection Fix Ġ: ĠLocal Quick Fix Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Family Name () Ġ= Ġ" Insert Ġline Ġfeed " ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġapply Fix ( project : ĠProject , Ġdescriptor : ĠProblem Descriptor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Element Ġ= Ġdescriptor . psi Element ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġtext Element . containing File . document () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= ĠMagic . Pattern . sentence End . matcher ( text Element . text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrange Ġ= Ġdescriptor . text Range In Element ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Offset Ġ= Ġtext Element . text Offset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext In Element Ġ= Ġdocument . getText ( Text Range ( text Offset Ġ+ Ġrange . start Offset , Ġtext Offset Ġ+ Ġrange . end Offset )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! matcher . find ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsign Marker Ġ= ĠMagic . Pattern . sentence Se perator . matcher ( text In Element ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! sign Marker . find ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFill Ġin Ġreplacement ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġtext Element . text Offset Ġ+ Ġdescriptor . text Range In Element . start Offset Ġ+ Ġsign Marker . end () Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠlineNumber Ġ= Ġdocument . get LineNumber ( offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreplacement Ġ= Ġ"\ n ${ document . line Indent ation ( line Number )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdocument . insert String ( offset , Ġreplacement ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdocument . delete String ( offset Ġ- Ġ 1 , Ġoffset ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ