Commit Graph

133 Commits

Author SHA1 Message Date
Robby Findler
938959611e rework online compilation's internals
Things should now generally be set up to work better --
for example online check syntax is smarter now about
what happens when switching tabs/frames and this also
makes it easier to add new ways for a window to become
dirty (that is, for it to be known that it needs to
be recompiled)
2012-12-19 10:50:01 -06:00
Robby Findler
6c0baa0c1e make sure there is a dc before trying to size text 2012-11-25 13:19:47 -06:00
Matthew Flatt
693ff33bfc serialize bluebox tables
Typically, the bluebox table includes keys that have interned parts,
so serialization can save space both on disk and in memory when the
bluebox information is reloaded.
2012-11-23 18:44:51 -07:00
Robby Findler
3a04bed479 avoid calling client->screen with numbers out of its domain
related to PR 13292
2012-11-23 15:41:04 -06:00
Robby Findler
475822b44a fix a bug in a syntax-case keywords spec
closes PR 13237 (turns out not to be planet-specific)
2012-11-22 13:54:32 -06:00
Robby Findler
2253e90479 fix blubox / lock coordinate computation
when the blue box doesn't fit in the visible region
in one direction (either x or y) but does fit
in the other region, then it was being drawn in
the wrong place

This code is still sub-optimal, since it isn't leaving
space for the words underneath the lock in the case
the lock is near the bottom of the visible region, but
it seems better to just let that be invisible rather
than make the lock float a bit in that case.

closes PR 13142
2012-11-22 11:03:45 -06:00
Robby Findler
4f27df3179 make the f2 button go find the definitions text,
instead of assuming it was typed in the definitions text

closes PR 13225
2012-11-22 10:10:21 -06:00
Robby Findler
0e655f8e79 only clear out the (offline) check syntax error message
panel when there is something definitely in the panel,
insert of doing on every insertion to the editor
2012-11-11 08:53:12 -06:00
Robby Findler
6704346db1 adjust the bluebox record-keeping code so that if there
is no bluebox information, then we can just bypass updating
it on insertions (especially important when loading a big
file into drracket, as there is a lot of insertion but no
blue boxes (yet))
2012-11-11 08:53:12 -06:00
Robby Findler
e2d74f2cf3 streamline the objects that are sent across the channel from
the expansion place to the main drracket place during
online check syntax
2012-10-31 16:52:44 -05:00
Robby Findler
c6caf11323 Adjust online check syntax's trace replay code so that it:
- lets other events be handled based on how long it has been
  replaying the current trace (instead of based on the number of
  pieces in the trace that have been seen)

- breaks up the syncheck:add-rename-menu pieces of the trace to
  be more granular (to make the previous point work better)

This should make DrRacket more responsive when the trace is being
replayed
2012-10-26 21:49:45 -05:00
Robby Findler
e89a121ae5 add some first-cut logging information to drracket
to track how long events take to be handled
2012-10-26 21:49:44 -05:00
Robby Findler
197b8308d0 fix some part of the check syntax blinking arrows infrastructure
to better cope with tooltips when tabs change and when the frame
becomes in-active.

related to PR 13139
2012-10-10 10:44:01 -05:00
Robby Findler
a4b79ccf66 adjust Check Syntax so that it tries to point to the
raw-module-path inside of a phaseless-spec (see
the #%require docs for the description of these).
Also, Rackety

in conjunction with commit 9047427 (and an earlier
commit in those files/dirs), this commit:
 closes PR 7815
 closes PR 10455
 closes PR 10788
2012-10-01 10:47:23 -05:00
Robby Findler
ce8d8eb763 fix the way check syntax traverses #%require expressions that it sees
(the way things currently stand, check syntax needs more information
 from the fully expanded form, but at least now it has a better chance
 to actually use that information, if it were there ...)

related to PR 7815
related to PR 10455
related to PR 10788
2012-09-29 22:09:02 -05:00
Robby Findler
60a035889f make tooltips go away if the drracket window isn't
the top-level window (and make them not appear in
that case, too)

closes PR 13139
2012-09-28 23:09:16 -05:00
Robby Findler
e958c33739 make a bunch of unmutated private fields bound to procedures into private methods
(the usual (define f ...) in a class confusion)
2012-09-28 22:44:27 -05:00
Robby Findler
c3a454aebf Add a missing check for when arrow-records might be #f
closes PR 13133
2012-09-21 16:20:07 -05:00
Robby Findler
21e0d9e031 make check syntax traverse (module* ...) expressions
closes PR 13095
2012-09-19 06:48:09 -05:00
Robby Findler
ae87169d7e eliminate some dead code (showuld have been removed in an earlier commit) 2012-09-19 06:08:03 -05:00
Robby Findler
51d41c6cfe adjust check syntax so that it doesn't take over the right-click
menu, but instead cooperates with the existing protocol
(using keymap:add-to-right-button-menu)
2012-09-19 05:19:03 -05:00
Robby Findler
8a4567f5aa adjust the tooltip position so it goes to the end of the line where the arrowhead sits 2012-08-27 20:13:49 -05:00
Robby Findler
9934f202c9 avoid allocating a bunch of boxes (instead use ones already lying around) 2012-08-27 20:13:49 -05:00
Robby Findler
0d92608367 rename contract-gui.rkt to blueboxes-gui.rkt 2012-08-23 21:42:07 -05:00
Robby Findler
d3b4db2ed1 fix the computation of the minimum width for the blue boxes
(you could see it going wrong with 'this' from racket/class)
2012-08-23 21:27:00 -05:00
Robby Findler
e41aa93e6e fix a bug in the event handling that would cause updates
to the blue box to get missed when it was open via the mouse
(as opposed to be tacked open)
2012-08-20 20:30:52 -05:00
Robby Findler
01e7edeff1 some performance improvements for the new drracket blueboxes
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)
2012-08-16 19:16:57 -05:00
Robby Findler
25e4115f32 give the f2 keybinding a more useful name
(since it shows up in the keybindigns dialog box)
2012-08-16 19:16:57 -05:00
Robby Findler
23aa31fc6f adjut check syntax so that it pays attention only
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
2012-08-14 17:49:52 -05:00
Robby Findler
d34490d990 show docs for syntax-quoted identifiers
(when there are docs to show)
2012-08-14 16:20:48 -05:00
Robby Findler
d96d920cf9 rename contract-blueboxes.rktd to blueboxes.rktd 2012-08-14 16:20:47 -05:00
Robby Findler
1b18499c69 make the blue box be cleared out less eagerly 2012-08-13 10:31:55 -05:00
Robby Findler
89b72f94b9 fix annotations-mixin for new syncheck interface 2012-08-12 15:50:56 -05:00
Robby Findler
9f1b54c6fa remove experimentation code (that I should have removed earlier) 2012-08-12 15:50:55 -05:00
Robby Findler
0c6734f782 Add the contents of the "blue boxes" in the docs to the upper-right
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
2012-08-12 08:41:46 -05:00
Robby Findler
1a619bd047 add tooltips at the start and end of arrows indicating how many references
there are and how many definition sites there are (in check syntax)

also: Rackety
2012-07-30 21:46:22 -05:00
Robby Findler
ec41d86fef clean up the way original objects are being handled in check syntax
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)
2012-07-30 21:46:22 -05:00
Robby Findler
a66c735b82 removed the check syntax mode support 2012-07-17 13:07:41 -05:00
Robby Findler
3463f4233e adjust the contract obligation aspect of check syntax
so that it uses tooltips instead of the modes

(so hopefully now people will actually see it ...)
2012-07-17 13:07:41 -05:00
Robby Findler
160eef8366 added a tooltip for set!'d variables 2012-07-17 13:07:41 -05:00
Robby Findler
bf95ee1052 Adjust datalog to cooperate with check syntax a little bit more.
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)
2012-06-01 04:55:04 -05:00
Eli Barzilay
f7c67b49a4 Big newline at EOF scan. 2012-02-29 00:28:11 -05:00
Robby Findler
f61f0830e5 change register-toolbar-button so that it accepts a number
argument and uses that to order the buttons in the DrRacket
panel.

Also, order all of the buttons via these numbers in
a more sane way
2012-02-25 16:57:49 -06:00
Robby Findler
914f9feebc lighten some check syntax arrow colors in white-on-black mode
closes PR 12594
2012-02-22 16:41:46 -06:00
Eli Barzilay
c007c345f9 A bunch of more typos like the ones in David's commit. 2012-02-21 14:21:43 -05:00
Robby Findler
e8902f9981 added a hack to keep DrRacket from freezing when it is unable to
detect if a (n online check syntax) rename would conflict with
an existing name. (This can happen because the remote place's
custodian gets shutdown due to, for example, another tab's online
check syntax running.)
2012-01-31 21:11:16 -06:00
Robby Findler
a0ef78e97b adjust online check syntax to try to fix a bug where renaming information
can get "stale" and cause DrRacket to deadlock (this commit just sets
up some stuff to make one fix possible, but that fix doesn't seem to
be working, so the actual fix is disabled (see comment in commit))
2012-01-31 21:11:16 -06:00
Robby Findler
c9e4c88b7c fix a bug in check syntax where it would attempt to (as part of the
coloring for blame assignment in check syntax) try to color
the right-hand side of a binding that actually comes from
a lambda-bound variable (and thus crash for not finding the
right-hand side)
2012-01-19 13:20:41 -06:00
Robby Findler
188f868a28 Remove the position-location cache that check syntax used to maintain for
the purpose of drawing arrows.

The computation to fill in the cache seems to actually be pretty quick and
the work to clear the cache when it is out of date (via a call to on-change)
can be substantial on big files, so just not maintaining the cache seems better.
(there are 7254 arrows in drracket/private/unit.rkt, stored in an interval map,
and iterating over the interval-map in a for loop seems to be time consuming)

Also, DrRacket could get into a state where switching tabs would trigger a
call to on-change, which means that switching tabs would take a few seconds.
2011-12-23 16:15:26 -06:00
Robby Findler
a122ea725d fix a bug in the kill-safe abstraction that is designed to protect
the state that online check syntax uses (indirectly via scribble)
to lookup documentation.

since the kill-safe abstraction moved some computation over to
another thread, the values of various parameters (current-directory
in this case) were not preserved. So when scribble then ended up
resolving a module path with the wrong current directory, this
bad value got cached. Then later, when check syntax tries to figure
out what file to open to jump to it, it got the cached bogus value
(even though current-directory was right when check syntax asked
for the filename).

closes PR 12538
2011-12-15 20:37:15 -06:00