comp.lang.ada
 help / color / mirror / Atom feed
From: "G.B." <bauhaus@futureapps.invalid>
Subject: Re: Pretty-printer? (Alternatives to "gnatpp")
Date: Mon, 14 Mar 2016 13:01:30 +0100
Date: 2016-03-14T13:01:30+01:00	[thread overview]
Message-ID: <nc690v$3au$1@dont-email.me> (raw)
In-Reply-To: <nc5mi3$1o6k$1@gioia.aioe.org>

On 14.03.16 07:43, Bob Butler wrote:
> On 2016-03-13, Georg Bauhaus <bauhaus@futureapps.invalid> wrote:
>> On 13.03.16 19:07, Jacob Sparre Andersen wrote:
>>>    2) You can't get it to select the casing of identifiers on a
>>>       word-by-word basis (which means that I have to repeat every acronym
>>>       we use in the project once for every identifier it occurs in).
>>
>> The (new) Ada mode for Emacs can be used as a pretty printer,
>> for all versions of Ada, and it supports automatic letter case.
>> The user may define a list of exceptions to the casing rules
>> that he prefers.
>
> I thought of that too but I don't know if you can print from Emacs. I guess
> you probably can, there isn't much Emacs can't do.

You can print from Emacs, as the following example shows.
(To "print" as in to "write pretty printed text to output";
there also is colored postscript printing, etc.)

Ada mode does report syntax errors. Still, it is lenient
when all that it should do is letter case. Example input:

procedure Synerr is
begin
    null:
end synErr;

about which file Emacs says, when visiting,

synerr.adb:3:8: syntax error in grammar state 641; unexpected :, 
expecting one of (default SEMICOLON)

And then, indeed, trying to indent will screw up the indentation.
Nevertheless, evaluating the sequence of commands

(ada-case-adjust-buffer)
(write-file "synerr.pretty.adb")

will yield a new file "synerr.pretty.adb" that looks like this:

procedure Synerr is
begin
    null:
end Synerr;

So, the last line now also follows the usual letter case rules,
spelling "Synerr" the same in both places. (The syntax error is
still present.)


  reply	other threads:[~2016-03-14 12:01 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-13 18:07 Pretty-printer? (Alternatives to "gnatpp") Jacob Sparre Andersen
2016-03-13 18:49 ` J-P. Rosen
2016-03-13 19:26   ` Jacob Sparre Andersen
2016-03-13 18:49 ` J-P. Rosen
2016-03-13 19:33 ` Britt
2016-03-13 20:32   ` Jacob Sparre Andersen
2016-03-13 21:37 ` Georg Bauhaus
2016-03-13 21:42 ` Georg Bauhaus
2016-03-14  6:43   ` Bob Butler
2016-03-14 12:01     ` G.B. [this message]
2016-03-14 13:13       ` Simon Wright
2016-03-14  0:58 ` Shark8
2016-03-14 23:47 ` Randy Brukardt
2016-03-15  0:15 ` Britt
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox