specifically, it doesn't trigger redrawing of the screen
as aggressively, which seems to make a little difference
under mac os x.
I'd have liked to be more sophisticated in the way redraws
are triggered, but I don't see how (see long comment in this
commit for details)
to syntax-original? identifiers
It used to pay attention to non-original identifiers if they
were in the disappeared-use or disappeared-binding
properties, but now that the 'syntax' macro is fixed
(commit f28e8a0) it can ignore all non-original identifiers
corner of the definitions window, based on the information that check
syntax computes
This commit contains two separate changes to make this work:
- adding a new renderer, based on the text renderer, that
pulls out the contents of the blue boxes and saves them
in the doc/ directories (specifically in the files named
contract-blueboxes.rktd)
- extend check syntax to use and display the information
build by the new renderer
Specifically, move the syntax-original? checks to the point
where objects are inserted into the tables (it seemed to mostly
be happening there already, but now remove the checks on the
references)
then hide the definitions/interactions labels for a while (2
seconds currently). also, when the 2 seconds expires, fade back
in instead of just appearing immediately
in the bottom window when it really is a different file
(ie, using a same-file predicate that involves opening
the files and comparing the ports)
closes PR 12635 (hopefully -- if not, then we can reopen)
Specifically:
- make predicate symbols and variables be original (and,
in the former case, have srclocs)
- remove the originality in the quoted syntax constants
that the expansion introduces
I think there is probably something better that should be done
with those introduced syntax constants, possibly relacing
them with #f, or possibly replacing them with source location
lists, but I'm not sure how they are used, so I've just left
them in there.
(Also, very minor Rackety in check syntax)
like textual-read-eval-print-loop
There is still a difference, however, because drracket's REPL has a
notion of multiple expressions that are submitted simultaneously that
textual-read-eval-print-loop doesn't. For example, if you type this at
the prompt:
(car) (+ 1 2)
then textual-read-eval-print-loop will print out the error and then 3,
but drracket will print only the error (ditto if (car) were replaced
by a continuation abort).
This difference is, IMO, a good thing, since it lets you use a single
interaction to do multiple things, but stops as soon as there is an
error. (It is also how drracket has behaved for a long time.)
closes PR 12790
There was an exception raised and then handled internally when the
slideshow/pict-convert library was loaded; DrRacket loaded this
library during the dynamic-extent of a handler it installed into
the global-port-print-handler, which causes a (non-tail) infinite
loop.