/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 ĠSquare , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . squareup . sql de light . intellij . lang . formatter Ċ Ċ import Ġcom . intellij . formatting . Alignment Ċ import Ġcom . intellij . formatting . Block Ċ import Ġcom . intellij . formatting . Indent Ċ import Ġcom . intellij . formatting . Spacing Ċ import Ġcom . intellij . formatting . Wrap Ċ import Ġcom . intellij . formatting . Wrap Type Ċ import Ġcom . intellij . lang . AST Node Ċ import Ġcom . intellij . psi . Psi WhiteSpace Ċ import Ġcom . intellij . psi . formatter . common . Abstract Block Ċ import Ġcom . squareup . sql de light . Sqlite Parser Ċ import Ġcom . squareup . sql de light . intellij . lang . Sqlite Token Types Ċ Ċ internal Ġclass ĠSql Del ight Block ( ĊĠĠĠ Ġnode : ĠAST Node , Ġwrap : ĠWrap ?, Ġalignment : ĠAlignment ? Ċ ) Ġ: ĠAbstract Block ( node , Ġwrap , Ġalignment ) Ġ{ ĊĠ Ġprivate Ġval Ġchildren Ġby Ġlazy Ġ{ ĊĠĠĠ Ġif Ġ( is Leaf ) Ġempty List < Block >() ĊĠĠĠ Ġelse Ġnode . getChildren ( null ) ĊĠĠĠĠĠĠĠ Ġ. filter Not Ġ{ Ġit Ġis ĠPsi WhiteSpace Ġ} ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . text Range . start Offset Ġ< Ġit . text Range . end Offset Ġ} ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . text Ġ!= Ġ";" Ġ} ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . as Block () Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġbuild Children () Ġ= Ġchildren ĊĠ Ġoverride Ġfun Ġget Indent () Ġ= ĠInd ent . get None Indent () ĊĠ Ġoverride Ġfun Ġis Leaf () Ġ= ĊĠĠĠĠĠ Ġnode . elementType Ġ== ĠSql ite Token Types . RULE _ ELEMENT _ TYPES [ Sqlite Parser . RULE _ import _ stmt ] ĊĊĠ Ġoverride Ġfun Ġget Spacing ( c 1 : ĠBlock ?, Ġc 2 : ĠBlock ): ĠSp acing Ġ{ ĊĠĠĠ Ġif Ġ( c 1 Ġ== Ġnull ) Ġreturn ĠSp acing . create Spacing ( 0 , Ġ 0 , Ġ 0 , Ġfalse , Ġ 0 ) ĊĠĠĠ Ġelse Ġif Ġ( c 2 Ġis ĠSql Del ight Block Ġ&& Ġc 2 . is Leaf ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĠSp acing . create Spacing ( 0 , Ġ 0 , Ġ 1 , Ġfalse , Ġ 0 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠSp acing . create Spacing ( 0 , Ġ 0 , Ġ 2 , Ġfalse , Ġ 0 ) ĊĠ Ġ} ĊĊĠ Ġfun ĠAST Node . as Block () Ġ= Ġwhen Ġ( elementType ) Ġ{ ĊĠĠĠ ĠSql ite Token Types . RULE _ ELEMENT _ TYPES [ Sqlite Parser . RULE _ sql _ stmt ] Ġ-> ĠSql Stmt Block ( this ) ĊĠĠĠ ĠSql ite Token Types . RULE _ ELEMENT _ TYPES [ Sqlite Parser . RULE _ create _ table _ stmt ] Ġ-> ĠCreate Table Block ( this ) ĊĠĠĠ Ġelse Ġ-> ĠSql Del ight Block ( this , ĠWrap . create Wrap ( Wrap Type . NONE , Ġfalse ), ĠAlignment . create Alignment ()) ĊĠ Ġ} Ċ }