Commit Graph

157 Commits

Author SHA1 Message Date
Robby Findler
4997800a76 make-traversal's optional argument is now ignored
Recent changes eliminated it, but it seems better
(for backwards compatibility) to leave it there but
ignore it
2013-03-06 12:31:50 -06:00
Robby Findler
39e4ac15e5 bring 'jump to definition' more in line with online check syntax
That is, when right-clicking on an imported identifier, if the
file that has that identifier's definition is open and online
check syntax has completed, then offer a "jump to definition" menu
item that just jumps there with the already computed informtion.
If the file isn't open or online check syntax hasn't completed,
instead offer just to go to the file, without jumping to the definition

also
- things should generally work slightly better with submodules
- jumping to identifiers should do a better job with scrolling,
  specifically it should scroll so the jumped-to identifier is
  about 20% from the top of the window (unless it was already visible,
  in which case no scrolling should occur)
2013-03-05 22:39:34 -06:00
Robby Findler
574fc8f50f add a missing arg to jump-to-next-callback
closes PR 13560
2013-02-26 21:55:17 -06:00
Robby Findler
661c29b8d4 tweak 2013-02-20 21:13:01 -06:00
Robby Findler
c6f106d285 remove spurious printf 2013-02-19 19:18:17 -06:00
Robby Findler
d3e1c16159 adjust the c:x;n and c:x;p keybindings to use the
same information as the yellow green bubbles

Before, when you typed c:x;n, drracket would look at the identifier
you're on, find its binder, find all bound occurrences of that binder,
sort them by position in the buffer, and then jump to the one that
follows where you are.

This works great for things like the "x" in "(let ([x 1]) x x)"
but not so great for things like the "define" in:

  #lang racket
  (define x '(+ 1 2))
  (define y '(+ 3 4))

since that would jump to the quote, since there are bindign arrows
going from the "racket" to the define and to the quote.

Now, since it is using information ultimately derived directly
from (and only from) free-identifier=? (the arrows also come from
identifier-binding, which is how we get those arrows in the second
example above) you jump from the first define to the second define,
which seems better.
2013-02-19 13:52:42 -06:00
Robby Findler
85f9fbbaee interactivity fix for online check syntax
commit e503850f21 broke drracket's
interactivity (for some files it could take 2 seconds to do
that one line)

This changes the bindings-table so that it maps to sets instead of
lists. Now, instead of mutating all entries in the table right after
collecting everything, just leave them as sets until we need the info
and just sort a single entry, when it is needed
2013-02-18 16:33:50 -06:00
Robby Findler
8fb49059cb add a 'jump to previous binding occurrence' keybinding 2013-02-18 10:38:43 -06:00
Robby Findler
e503850f21 fix the c:x;n keybinding when used with online check syntax info
(and perhaps other parts of online check syntax)
2013-02-18 10:38:43 -06:00
Robby Findler
76cc599ff9 fix bug in check syntax introduced when adding the
new green, mouse-over, which-identifiers-are-the-same bubbles
2013-02-05 12:32:48 -06:00
Robby Findler
25f92f8e9e fix a problem with the way that check syntax's interval map
tracks information about the program
2013-02-02 19:35:09 -06:00
Robby Findler
a90434b080 avoid a deadlock introduced in recent identifier highlighting commit 2013-02-01 19:17:51 -06:00
Robby Findler
74c97cfc90 Rackety 2013-01-31 11:23:20 -06:00
Robby Findler
a3cde5fb42 adjust check syntax so it highlights all identifiers with the same
binding site (with a green/yellow bubble) when the mouse moves over
any one of them

This change comes about because of the recent fixes to the
interactivity wrt to the rename menu. Basically, in order to fix the
bug (but still preserve the interactivity optimization), check syntax
changed from sending the information "here is a place to offer a
rename for these identifiers" to "here is a set of identifiers that
are all free-identifier=?" (the difference being that the latter does
not imply you got them all (which enables the optimization) and that
the information is slightly less rename-menu specific (which enables
the change in this commit))
2013-01-31 10:58:04 -06:00
Robby Findler
b4ec1de386 unbreak drr 2013-01-30 21:48:22 -06:00
Robby Findler
afb61944db bring back the syncheck:add-rename-menu method in a way
that preserves backwards compatibility for the
drracket/check-syntax library
2013-01-30 20:47:55 -06:00
Robby Findler
dc4a74ddf3 fix bug in commit 4c4161ce2b 2013-01-30 15:11:28 -06:00
Robby Findler
4c4161ce2b guard a call to invalidate-bitmap-cache in
check syntax so it only happens when something
would draw differently
2013-01-30 11:54:47 -06:00
Robby Findler
f0450d716b fixes the responsiveness optimization disabled in
c8bee5acf7
2013-01-29 19:02:32 -06:00
Robby Findler
c8bee5acf7 disable a broken responsiveness optimization 2013-01-28 10:30:46 -06:00
Robby Findler
3e5a9ca3cd unbreak check syntax
get-current-tab may not be the right tab to replay the trace,
now that online expansion runs other tabs when the current tab
is up to date.
2013-01-27 07:31:34 -06:00
Robby Findler
3e3283aeba adjust drracket so check syntax can add its preferences itself
closes PR 13419
2013-01-08 01:01:40 -06:00
Robby Findler
f6805ea0c2 remove fancy delay dance around load-collections-xref 2012-12-26 22:37:45 -06:00
Robby Findler
7cad346cf8 add a preference to disable the arrows in online check syntax (and regular check syntax too) 2012-12-21 22:08:51 -06:00
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