package Ġorg . intellij . plugin . md x . format Ċ Ċ import Ġcom . intellij . formatting . Formatting Document Model Ċ import Ġcom . intellij . formatting . Formatting Mode Ċ import Ġcom . intellij . formatting . Formatting Model Ċ import Ġcom . intellij . formatting . Wrap Type Ċ import Ġcom . intellij . lang . javascript . Dialect Detector Ċ import Ġcom . intellij . lang . javascript . J SL anguage Util Ċ import Ġcom . intellij . lang . javascript . formatter . Javascript Formatting Model Builder Ċ import Ġcom . intellij . lang . javascript . psi . JS Function Exit Point Ċ import Ġcom . intellij . openapi . util . text . StringUtil Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġcom . intellij . psi . Psi WhiteSpace Ċ import Ġcom . intellij . psi . code Style . Code Style Settings Ċ import Ġcom . intellij . psi . formatter . xml . Html Policy Ċ import Ġcom . intellij . psi . formatter . xml . Xml Formatting Policy Ċ import Ġcom . intellij . psi . formatter . xml . Xml Policy Ċ import Ġcom . intellij . psi . xml . Xml Tag Ċ import Ġcom . intellij . psi . xml . Xml Text Ċ Ċ class ĠM dx Js Formatting Model Builder Ġ: ĠJavascript Formatting Model Builder () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Model ( element : ĠPsi Element , Ġsettings : ĠCode Style Settings , Ġmode : ĠFormat ting Mode ): ĠFormat ting Model Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialect Ġ= ĠJ SL anguage Util . get Language Dialect ( element ) ĊĠĠĠĠĠĠĠ Ġval Ġalignment Ġ= Ġelement . node . getUser Data ( BLOCK _ ALIGNMENT ) ĊĠĠĠĠĠĠĠ Ġval Ġjs Block Context Ġ= ĠM dx Js Block Context ( settings , Ġdialect , Ġnull , Ġmode ) ĊĠĠĠĠĠĠĠ Ġval Ġroot Block Ġ= Ġjs Block Context . create Block ( element . node , Ġnull , Ġalignment , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġformatting Model Ġ= Ġcreate JS Formatting Model ( element . containing File , Ġsettings , Ġroot Block ) ĊĠĠĠĠĠĠĠ Ġval Ġxml Formatting Policy Ġ= Ġget Policy ( element , Ġsettings , Ġformatting Model . document Model ) ĊĠĠĠĠĠĠĠ Ġjs Block Context . set Xml Formatting Policy ( xml Formatting Policy ) ĊĠĠĠĠĠĠĠ Ġreturn Ġformatting Model ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget Policy ( element : ĠPsi Element , Ġsettings : ĠCode Style Settings , Ġmodel : ĠFormat ting Document Model ): ĠXml Formatting Policy Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Dialect Detector . is JS X ( element )) Ġobject Ġ: ĠHtml Policy ( settings , Ġmodel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Wr apping Type For Tag Begin ( tag : ĠXml Tag ): ĠWrap Type Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġtag . parent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Restricted Production ( parent )) Ġreturn ĠWrap Type . NONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent Ġ! is ĠXml Tag ) Ġreturn ĠWrap Type . NORMAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( newline Pro hibited Before ( tag )) ĠWrap Type . NONE Ġelse Ġsuper . get Wr apping Type For Tag Begin ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġindent Children Of ( parent Tag : ĠXml Tag ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( parent Tag Ġ!= Ġnull Ġ&& Ġparent Tag . name . isEmpty ()) Ġtrue Ġelse Ġsuper . indent Children Of ( parent Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġallow Wrap Before Text (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinsert Line Break Before Tag ( xml Tag : ĠXml Tag ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcheck Name ( tag : ĠXml Tag , Ġoption : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcheck Name ( tag , Ġoption , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġis Inline Tag ( tag : ĠXml Tag ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠString Util . is Capital ized ( tag . name ) Ġ|| Ġsuper . is Inline Tag ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġobject Ġ: ĠXml Policy ( settings , Ġmodel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Wr apping Type For Tag Begin ( tag : ĠXml Tag ): ĠWrap Type Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( tag . parent Ġ! is ĠXml Tag ) ĠWrap Type . NORMAL Ġelse Ġsuper . get Wr apping Type For Tag Begin ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnewline Pro hibited Before ( tag : ĠPsi Element ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprev Sibling Ġ= Ġtag . prev Sibling ĊĠĠĠĠĠĠĠ Ġreturn Ġ( prev Sibling Ġis ĠPsi WhiteSpace ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġprev Sibling . get Prev Sibling () Ġis ĠXml Text ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Restricted Production ( parent : ĠPsi Element ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġparent Ġis ĠJS Function Exit Point ĊĠĠĠ Ġ} Ċ Ċ }