Commit Graph

594 Commits

Author SHA1 Message Date
Robby Findler
c9724446e6 adjust check syntax keyboard shortcuts
- make them use the same names as the context menu items
- add c:x;a to tack/untack arrows
2013-05-01 07:18:12 -05:00
Robby Findler
0c9f16a829 add c:x;m keyboard shortcut for renaming bound variables 2013-04-30 18:52:10 -05:00
Matthew Flatt
05c0299be4 switch DrRacket's "Install Package..." to the new package manager GUI 2013-04-28 15:26:36 -06:00
Robby Findler
ab7e2afae4 more fixes for recent datastructure change
(I should really use TR here...)
2013-04-26 19:44:13 -05:00
Robby Findler
6e83f84b1d unbreak check syntax 2013-04-26 15:25:37 -05:00
Robby Findler
0f8d66b29f unbreak drracket 2013-04-26 14:12:45 -05:00
Robby Findler
6169c5350f fix online check syntax for for-label requires 2013-04-26 10:26:12 -05:00
Robby Findler
e6888828b5 adjust online compilation so that the stack trace attached to an exception
is available by clicking the "Copy" menu item in the bottom bar
2013-04-26 10:26:12 -05:00
Robby Findler
e8f8217070 Revert "IN PROGRESS: add opt/c to with-contract and provide/contract"
and "IN PROGRESS: working on syntax error messages for 2d"

This reverts commit bbb0d27e85.

This reverts commit 1452563250.
2013-04-25 18:14:21 -05:00
Robby Findler
1452563250 IN PROGRESS: working on syntax error messages for 2d 2013-04-25 17:32:00 -05:00
Robby Findler
951538ab90 fix jump-to-defining-file when a stacktrace window is open 2013-04-24 19:56:32 -05:00
Robby Findler
880b841073 modernize a few contracts in drracket 2013-04-23 23:06:22 -05:00
Robby Findler
e12a685107 adjust drracket's online expansion machinery to track exns that are
passed to the error-display-handler during expansion

(not just the exn records that actually get raised)

the motivation is to do a better job with TR's way of signalling
mutiple error messages.
2013-04-21 10:16:07 -05:00
Robby Findler
d1e7841f84 add File|New, File|Open... and File|Open Recent menu items to the
bug report form window

related to PR 13698
2013-04-16 18:40:48 -05:00
Matthew Flatt
6fe2861877 DrRacket: if any file in package X is open, treat X as "in development"
... for the purpose of "populate 'compiled' directories" --- but only if
the user has write permission for the package directory.

This change may or may not be a good idea. The idea is that installed
packages generally should be treated in the same way as the main
"collects" tree (e.g., avoiding debugging instrumentation), but if you
happen to be developing a package, then you want it treated like things
that are not in the main "collects" tree. So, how do you pick? Maybe
opening a file in the package is a good way to pick.
2013-04-16 12:51:54 -06:00
Matthew Flatt
551fd1c68d DrRacket: disable "compiled/drracket" during skipped-file load
If DrRacket decides to skip a file for "populate compiled",
then there may exist a file in "compiled/drracket", anyway,
or there may be such a file for some depenency of the skipped
file. Before this patch, that situation was considered to be a
broken installation, and things would go bad in the likely
case that the "compiled/drracket" files were out of date.

To avoid that problem, parameterize `used-compiled-file-paths'
to drop the DrRacket "populate compiled" target while loading
the skipped file.

This change sets up a more selective "populate compiled" where
a package's modules might switch between eligible and
ineligible for compilation by DrRacket.
2013-04-16 11:23:16 -06:00
Matthew Flatt
fe9350ea62 DrRacket: treat installed packages like "collects" directories
... for the purpose of "populate 'compiled' directories".
2013-04-16 11:04:28 -06:00
Robby Findler
11f74fc571 track dependencies from files with errors separately
from when the file doesn't have an error

More precisely, keep two sets of depndencies for a given
open tab. If the file expanded without error then we consider
that authoratative and keep that set of dependencies around
even if a later expansion fails. So there are two sets of
dependencies for each tab. When expansion succeeds, we reset
both of them, but if expansion fails then we reset only one,
preserving the set we got from the last successful expansion

please include in the release
2013-04-15 21:12:20 -05:00
Robby Findler
c188be0441 move the call that sets the focus later so it actually happens
merge to the release branch, please
2013-04-14 18:48:07 -05:00
Robby Findler
caec6d0711 shortcircuit some of the code involved in drawing the margin highlight
for online expansion errors

This avoids drawing the margin highlight when it isn't inside the
region being repainted and it avoids even figuring anything out about it
when there is currently no error range

NOT for the release branch
2013-04-08 13:40:55 -05:00
Robby Findler
d8f455158c make the get/extend extension more flexible
Specifically, allow a name to be specified with an
extension such that subsequent uses of those extensions
will replace mixins instead of adding new ones
2013-04-06 19:04:05 -05:00
Robby Findler
77163fe8d1 add the ability to load in new mixins to DrRacket's
various get/extend:extend functions
2013-04-05 22:39:20 -05:00
Robby Findler
0ea2b61857 fix bug in online check syntax 2013-04-05 22:39:19 -05:00
Robby Findler
e34e63b323 add support for updating packages via
drracket's "install package" menu item

It will infer whether to use 'raco pkg update' or
'raco pkg install' based on the currently installed
set of packages (but, of course, the details
section of the dialog lets you override this inference
if necessary)
2013-04-05 10:22:33 -05:00
Robby Findler
8246d073c0 adjust the package installation menu item in drracket to use mrlib/terminal 2013-04-04 11:10:30 -05:00
Robby Findler
5669c372b2 fix a docs bug
(and change a case-lambda to a regular lambda)
2013-04-01 22:39:22 -05:00
Robby Findler
0c5fa7d6c5 relax sandbox permissions now that contract error message
construction requires looking at the filesystem

assuming this is the right fix, it closes PR 13634
2013-03-26 00:03:34 -05:00
Robby Findler
2ec097a955 fix bug in drracket's online check syntax renaming setup
Because of a limitation in our GC tech (and because I have not
sorted out how to program around it (which should be possible))
when the "is it safe to rename this variable" check may silently
just say "yes" when it really doesn't know the correct answer.

It turns out that this was happening on every attempt to rename
after the first one (in a given online check syntax run) due to
a bug, now fixed in this commit (the "loop" didn't actually loop...)

Also, moved the creation of the thread to its own function to
make the things it closes over more syntactically apparent.
2013-03-25 21:04:20 -05:00
Robby Findler
7b0608ca42 fix a leak in DrRacket
It was leaking threads at about the rate of 2 per online expansion
that had a syntax error (or otherwise aborted without finishing
expansion)
2013-03-24 18:03:33 -05:00
Robby Findler
5937bcbbf5 fix a race-condition 2013-03-24 17:05:50 -05:00
Jay McCarthy
9f337c632a Removing the planet2 name from the code 2013-03-22 07:45:14 -06:00
Robby Findler
431efb40d1 Argh, sorry again.
Revert "IN PROGRESS: working on syntax error messages for 2d"

This reverts commit 04ada66741.
2013-03-21 22:48:47 -05:00
Robby Findler
04ada66741 IN PROGRESS: working on syntax error messages for 2d 2013-03-21 22:48:05 -05:00
Robby Findler
f166934700 adjust check syntax to deal properly with submodules at non-zero phases
Thanks to Matthew for sorting this out.

(Also removed a bunch of line-ended space chars since git
yelled at me.)
2013-03-21 13:08:34 -05:00
Robby Findler
ac93509d95 sorry, didn't mean to push this
Revert "syntax/rect: IN PROGRESS"

This reverts commit 7880c6de3c.
2013-03-15 15:38:13 -05:00
Robby Findler
7880c6de3c syntax/rect: IN PROGRESS 2013-03-14 16:36:51 -05:00
Robby Findler
79b5e4dc3a fix a bug that inhibited online compilation from writing out .zo files
when it compiles required files

Now that this is fixed, the compilation manager will be (once again)
active when doing online compilation, so if the "Populate compiled
directories" checkbox is check (which it is by default) in the details
section of the language dialog, then online compilation will, as it
compiles your file, write out .zo files that will also be used by the
Run button.

The actual fix to this bug is the change in expanding-place.rkt (and
all it really does is move the setting of the
current-load/use-compiled and current-load parameters earlier so that
CM sees only the modified parameter settings and so doesn't give up on
compilation.

The rest of the changes are a test case (and change to drracket to
support the test case)
2013-03-14 16:36:51 -05:00
Robby Findler
1bc82cc404 add an "install package" GUI to DrRacket that calls into planet2 2013-03-14 10:27:49 -05:00
Eli Barzilay
af6be85ff5 Fix lots of indentation mistakes.
(Found by my ayatollah script...)
2013-03-14 10:55:47 -04:00
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
007d18d145 properly handle eof in the online expansion code
It used to just kind of give up processing which, from the outside,
watching looked like

  (begin-for-syntax (custodian-shutdown-all (current-custodian)))

and so fell into that case in the code. Now, by explicitly raising
an exception, we get a more accurate response
2013-03-05 22:39:34 -06:00
Robby Findler
27d79aac18 don't try to re-use the active frame when it isn't shown
This is a bit suspicious, since it isn't clear why a frame
whose show method has been called with #f should be considered
an active frame. Since changing that is a much more dangerous
change then, for now: closes PR 13564
2013-02-27 22:35:39 -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