BrianGarland / vscode-rpgfree

Visual Studio Code extension to convert fixed format RPGLE to free format
MIT License
18 stars 11 forks source link

End-DS Not Added For Previous DS When Next DS Name Uses Ellipsis #85

Closed BrianGodsend closed 1 year ago

BrianGodsend commented 1 year ago

When a DS is followed by a fixed-format comment ("*" in column 7), and the next DS uses an ellipsis in the name (e.g., MyLongDataStructureNameHasAnEllipsisAtTheEnd...), the End-DS is not added to the first DS.

Fixed format RPG:

     D uim_lstatr_t    ds                  template qualified inz
     D  LstCnt                             like(uim_lstcnt_t)
     D  PgmDlgVar                          like(uim_name_t)
     D  PosHnd                             like(uim_hndent_t)
     D  AlwTrm                             like(uim_alwtrm_t)
      *
     D uim_opndtarcv_t...
     D                 ds                  template qualified
     D  CnvTblErrYN                   1a
     D  DtaCnvErrYN                   1a
      *
     D uim_sltcri_t    ds                  template qualified inz
     D  RelOpr                       10a
     D  DlgVarNam                          like(uim_name_t)

Converts to:

       Dcl-DS uim_lstatr_t  template qualified inz;
         LstCnt                    like(uim_lstcnt_t);
         PgmDlgVar                 like(uim_name_t);
         PosHnd                    like(uim_hndent_t);
         AlwTrm                    like(uim_alwtrm_t);

         Dcl-DS uim_opndtarcv_t  template qualified;
           CnvTblErrYN    Char(1);
           DtaCnvErrYN    Char(1);

         End-DS;
         Dcl-DS uim_sltcri_t  template qualified inz;
           RelOpr         Char(10);
           DlgVarNam                 like(uim_name_t);
         End-DS;

The expected results are:

       Dcl-DS uim_lstatr_t  template qualified inz;
         LstCnt                    like(uim_lstcnt_t);
         PgmDlgVar                 like(uim_name_t);
         PosHnd                    like(uim_hndent_t);
         AlwTrm                    like(uim_alwtrm_t);
       End-DS;

       Dcl-DS uim_opndtarcv_t  template qualified;
         CnvTblErrYN    Char(1);
         DtaCnvErrYN    Char(1);
       End-DS;

       Dcl-DS uim_sltcri_t  template qualified inz;
         RelOpr         Char(10);
         DlgVarNam                 like(uim_name_t);
       End-DS;

Note: this may be related to issue #45.