From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,19b6efa2ecebaed0 X-Google-Attributes: gid103376,public From: stuman@earthlink.net Subject: Re: Ada95 Pretty-Printers Date: 1997/06/10 Message-ID: <339E195A.1CB2@earthlink.net>#1/1 X-Deja-AN: 247603324 References: <339C58A6.4D5A@sprintmail.com> <339D677D.2FAC886C@link.com> Organization: EarthLink Network, Inc. Newsgroups: comp.lang.ada Date: 1997-06-10T00:00:00+00:00 List-Id: Samuel Mize wrote: > > John G. Volan wrote: > > Are there any pretty-printers out there for Ada95? > > This seems to come up every so often, and the answer so far has > been "not really." > > I would suppose that one could be built using the AdaMagic front > end, but that's sheer speculation and I don't know how much it costs. > > An Ada mode for emacs could be applied in a batch format, if you > find one that works reliably for what you want. > > > ... Apex is frustrating because it actively > > reformats almost every syntactic structure in Ada to suit Rational's > > coding style. > > That's a feature. Just ask them. > > ... > > Apex will ignore your line breaks and alignment, and reformat > ... > > Apex does a lot of this sort of thing (I don't _even_ want to begin > > on how it mangles long expressions), but it doesn't provide very > > many hooks to control this behavior. > > I got in the habit of putting an empty comment where I wanted a > line break. To use your first example: > > procedure Operation -- > (This : in This_Type; -- > That : in That_Type; -- > Other : out Other_Type); > > will become something like: > > procedure Operation -- > (This : in This_Type; -- > That : in That_Type; -- > Other : out Other_Type); > > (Assuming that Apex doesn't maintain the blanks to line up "in" > and "out"). > > I used this mostly to keep expressions broken up the way I wanted. > I found that, if you could keep the line breaks where you want > them, you can get fairly readable expression formatting with just > adding a few extraneous parentheses to direct the formatter to > indent a sub-expression (I have to do the same thing with emacs). > > I got third-hand, supposedly from someone at Rational, that if you > put two spaces at the end of a line, the reformatter will leave > that line break. If you don't want trailing comments in your code, > you can try it. I don't know if it's a feature they promise to > support, or just an artifact of the then-current implementation. > > I personally prefer using the comments to maintain line breaks, > because people get used to the formatter output. Thus, someone > might misread the expression, because they expect the indentation > to be correct. So, I prefer a visible indication that the > automated indentation has been tampered with. > > Sam Mize > > -- > -- Samuel Mize (817) 619-8622 "Team Ada" > -- Hughes Training Inc. PO Box 6171 m/s 400, Arlington TX 76005 We are using a version of Apex that has several switches to control pretty printing. One of these switches causes "whitespace" to be retained. In addition, there is a switch that has an effect on what Apex does with a statement that does not fit on a line. I think that the proper setting of these two switches, and adding a couple of spaces at the end of a line will allow you to retain your formatting. If not, then you can set the manual_pretty_printing switch to true and then you have complete control -- Apex will not do undo your formating -- although it may not do formatting at all.