[comp.sys.mac.programmer] THINK Pascal wish list

smoke@well.sf.ca.us (Nicholas Jackiw) (09/29/90)

I think THINK Pascal's great, and thanks for asking, Rich,
etc. etc.

The following items, each one perhaps trivial in a given
instance, become burdensome when you spend day after day,
week after week, coding away on the same project.

* If all ten windows are open, and you GO or BUILD, your
compilation may abort at any point if a file which needs
recompilation is not presently open.  When a change in
one of your header files involves a ten minute total
recompile time (this on a IIci, mind you),  you may well
be down by the coffee machine when the "can't open window"
comes up and your compile croaks.  You come back to the
Mac and realize you've only compiled 3 files out of 50.

I'd like to see THINK maintain one "private" file slot simply
for those files which are pseudo-opened during the course of
the compile.  (If an error occurs in the file, THINK wouldn't
need to display it in a window--the finger could point to it
in the project window.)  Alternately, and much easier to
implement, if at BUILD or GO time, all windows are in use and
at least one of the files flagged-for-recompilation isn't
open, give the error *then*--not after two or three minutes
of happily compiling the open files.

* Showing some intelligence about multiple-screen environments
would be great; at least to the extent of zooming to the
screen of maximum window area, instead of always to the main
screen.

* Throw in another vote for precompiled usage clauses, if this
is somehow possible--including them takes far longer than
compiling code, on any large project.  

* If you decide to include an in-line assembler, or even if you
don't, having Lightsbug do a simple, asymbolic disassembly of
the current instruction would be very nice.  I know you can
drop into Macsbug at the current step, but you have to keep
dropping out again to determine the addresses of your identifiers 
and all the other good stuff Lightsbug can tell you.

* Typecasting in Lightsbug isn't as smooth as it could be. If I
double-click on a typecast handle, I'd like to see the expansion
open up as the cast-type's dereference, not as the original type.
Also, being able to keep some very local state about which
identifiers
the user's typecast would be handy--every time I follow a reference,
or backout of a reference, all of the typecasts I've made in that
frame of reference seem to vanish.  I know I can use the file
cabinet, but that's cumbersome.

* HOME and END and the PAGE keys on an extended keyboard move the
content but not the cursor.  Sometimes this is handy; othertimes
I want the cursor to move.  If there were some way of getting the
cursor to the top visible line in the window, without using the
mouse, I could keep my hands on the keyboard all the time.

* When the project window's foremost, it sure would be nice to be
able to select a file by typing the first few characters of its
name.  Once selected, I'd like to be able to open it from the
keyboard,
probably just by hitting <RETURN>.  

* When I recompile, in MPW, a .o file,  I have to explicitly
unload and reload it into the project for THINK to reintegrate it's
contents, rather than to continue using its old contents.  Can
you check object files modification date, and if changed, reload
it automatically at BUILD?

* Now that Apple's warning us that match chips won't go hand in hand
with '20s and '30s, the build matrix for cross-platform applications
gets really complicated. ('00 no-chip, '20 no-chip, '00 chip, '20
no-chip,
etc.)  To generate each properly, there's a fair amount of
overhead...
change the THINK compiler directives, change your own private
directives,
unload SaneLIB and substitute Sane881.Lib, etc.  Without getting into
a full scripting system, some way of integrating and automating these
sort of tasks would help.

* Let's have a real profiler, and also the ability to dump symbolic
debugging info for TheDebugger or SADE.

Hope this isn't too much for you to get to by tomorrow, Rich ...

Cheers,

Nick