package Ġorg . jetbrains . fortran . ide . comment er Ċ Ċ import Ġcom . intellij . code Insight . generation . Comment er Data Holder Ċ import Ġcom . intellij . code Insight . generation . Self Man aging Comment er Ċ import Ġcom . intellij . lang . Comment er Ċ import Ġcom . intellij . openapi . editor . Document Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġcom . intellij . util . text . CharArray Util Ċ Ċ class ĠFor tran Fixed Form Comment er Ġ: ĠComment er , ĠSelf Man aging Comment er < Comment er Data Holder > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Comment ed Block Comment Prefix () Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġget Comment ed Block Comment Suffix () Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġget Block Comment Prefix () Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġget Block Comment Suffix () Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġget Line Comment Prefix () Ġ= Ġ" !" ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Line Comment ing State ( start Line : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Line : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument : ĠDocument , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile : ĠPsi File ): ĠComment er Data Holder ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Block Comment ing State ( selection Start : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselection End : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument : ĠDocument , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile : ĠPsi File ): ĠComment er Data Holder ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġcomment Line ( line : ĠInt , Ġoffset : ĠInt , Ġdocument : ĠDocument , Ġdata : ĠComment er Data Holder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdocument . delete String ( offset , Ġoffset Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġdocument . insert String ( offset , Ġline Comment Prefix ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġuncomment Line ( line : ĠInt , Ġoffset : ĠInt , Ġdocument : ĠDocument , Ġdata : ĠComment er Data Holder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdocument . delete String ( offset , Ġoffset Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġdocument . insert String ( offset , Ġ" Ġ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Line Comment ed ( line : ĠInt , Ġoffset : ĠInt , Ġdocument : ĠDocument , Ġdata : ĠComment er Data Holder ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreal Line Start Offset Ġ= Ġdocument . getLine Start Offset ( document . get LineNumber ( offset )) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠĠ Ġ(( offset Ġ== Ġreal Line Start Offset ) Ġ&& Ġ( CharArray Util . region Matches ( document . chars Sequence , Ġoffset , Ġoffset + 1 , Ġ" c ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠChar Array Util . region Matches ( document . chars Sequence , Ġoffset , Ġoffset + 1 , Ġ" C ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠChar Array Util . region Matches ( document . chars Sequence , Ġoffset , Ġoffset + 1 , Ġ" c ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĠChar Array Util . region Matches ( document . chars Sequence , Ġoffset , Ġoffset + 1 , Ġ"* "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġ(( offset Ġ- Ġreal Line Start Offset Ġ!= Ġ 5 ) Ġ&& ĠChar Array Util . region Matches ( document . chars Sequence , Ġoffset , Ġoffset + 1 , Ġ"! ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Comment Prefix ( line : ĠInt , Ġdocument : ĠDocument , Ġdata : ĠComment er Data Holder ): ĠString ? Ġ= Ġ" c " ĊĊĠĠĠ Ġoverride Ġfun Ġget Block Comment Range ( selection Start : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselection End : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument : ĠDocument , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠComment er Data Holder ): ĠText Range ? Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Block Comment Prefix ( selection Start : ĠInt , Ġdocument : ĠDocument , Ġdata : ĠComment er Data Holder ): ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget Block Comment Suffix ( selection End : ĠInt , Ġdocument : ĠDocument , Ġdata : ĠComment er Data Holder ): ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġuncomment Block Comment ( start Offset : ĠInt , Ġend Offset : ĠInt , Ġdocument : ĠDocument , Ġdata : ĠComment er Data Holder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinsert Block Comment ( start Offset : ĠInt , Ġend Offset : ĠInt , Ġdocument : ĠDocument , Ġdata : ĠComment er Data Holder ): ĠText Range Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException () ĊĠĠĠ Ġ} Ċ }