Commit Graph

635 Commits

Author SHA1 Message Date
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
1c2432e654 improve the interactions history window a little 2013-02-17 20:17:41 -06:00
Robby Findler
ddacc3efbb don't save repl interaction history when the new item is
a duplicate of the one before

closes PR 12763
2013-02-17 10:02:15 -06:00
Matthew Flatt
99d5dc95bf add ackn 2013-02-14 15:45:26 -07:00
Robby Findler
11ca461bf0 covered a missing case in the oc-status state machine 2013-02-12 16:50:34 -06:00
Robby Findler
53853d696a add increase/decrease font size menu items (ala browsers) 2013-02-12 13:46:19 -06:00
Danny Yoo
61ddb91815 Correct Help Desk Search so it handles keywords and hash-colon-keyword lexemes.
Closes PR 13470.
2013-02-12 12:25:11 -07: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
af61f1b98e change the default test coverage colors
After some consultation with my class this quarter,
it seems clear that the previous defaults and nearby
variations are completely hopeless for colorblind people
(there are at least 3 in this class). So go with the
defaults used in the HtDP languages, which have been
vetted by saidsame 3 people.
2013-02-03 09:25:24 -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
9d10a33e43 make the online check syntax error message font
size match the user's preferred font size

(useful in a classroom / talk setting)
2013-01-31 11:23:21 -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
Michael Filonenko
17b8092641 extflonums
An extflonum is like a flonum, but with 80-bit precision and
not a number in the sense of `number?': only operations such as
`extfl+' work on extflonums, and only on platforms where extflonums
can be implemented by hardware without interefering with flonums
(i.e., on platforms where SSE instructions are used for
double-precision floats).

[Patch provided by Michael Filonenko and revised by Matthew.]

The compiler tracks information about bindings that are known to
hold extflonums, but the JIT does not yet exploit this information
to unbox them (except as intermediate results).
2013-01-28 18:17:06 -07: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
2d2b3bee2f fix a bug in executable creation
The code used eq? to check to see if a given language was in
an list of allowed-to-create-executables languages. But the
language object was passing thru TR and so eq? didn't hold and
thus the check was buggy.
2013-01-26 10:47:59 -06:00
Robby Findler
c8a1ec8c9c fix bug in online check syntax's save file notification
Before this commit, the files that are loaded during expansion
were discarded when an error during expansion occurs. This commit
saves them: unless the program is something like

  (begin-for-syntax (kill-thread (current-thread)))

the handling that deals with that kind of situation (as opposed
to just an exception being raised) doesn't try to save them

Do not merge to 5.3.2: this bug isn't serious and the new code
is not as well tested as the old
2013-01-15 09:07:42 -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
4e95220d97 speed up tab switching
I belive this should only be noticeable at the human timescale level
when the tabs have been switched to already and, in that case, seems
to go from 3-400 msec to 50-60 msec on my machine

Essentially all of that time is in redrawing the buffer, so that 50-60
msec is proportional to the height of the DrRacket window, roughly.

(The commit just makes drracket do a single redraw instead of about 4
or so of them per switch ...)
2013-01-06 19:48:14 -06:00
Robby Findler
23fec98cbb move a literal string that should be translated into the string-constants library 2013-01-05 12:22:37 -06:00
Robby Findler
cce6f28d4d remove 'create executable' functionality from drracket for all
langauges except The Racket Language and the HtDP and DMdA languages
2013-01-05 12:19:26 -06:00
Robby Findler
12a288f135 add a checkbox to disable online expansion in the preferences dialog
(it controls the same state as clicking in the circle in
the bottom right corner of the drracket window)
2013-01-03 11:00:23 -06:00
Robby Findler
ad579d07d6 put the racket version number in the title bar for the splash screen 2013-01-02 10:19:38 -06:00
Robby Findler
0d0503bda7 adjust sync pattern to avoid cross-thread set! 2013-01-01 23:13:13 -06:00
Robby Findler
0f26aafd1f Adjust DrRacket to not use on-demand to populate the
teachpack menu.

Instead DrRacket explicitly changes the menu items when
the language changes or when a teachpack is added/removed

Also, Rackety.

Closes PR 13395
2013-01-01 23:13:00 -06:00
Robby Findler
974350472c whoops, fix a bug introduced in 0f9674e1dd 2013-01-01 13:12:34 -06:00
Robby Findler
0f9674e1dd adjust drracket window size and position preferences to use a different key
This will make switching back and forth between 5.1.3 and the latest
not lose the frame size and position preferences (since the format
of the data is different now that the current release remembers
the position on a per-monitor-configuration basis)
2013-01-01 11:26:05 -06:00
Robby Findler
353da62843 added make-module-language-tag and use it and make-section-tag
in a few places
2012-12-27 11:10:40 -06:00
Robby Findler
cbeb846043 logger GUI bug
when a tab is created, the logger gui controls may not
have been created, so in the case don't try to update them
2012-12-27 09:06:18 -06:00
Robby Findler
d2d1ac2f2c Improve the logger GUI in DrRacket
One drawback to the current situation (after this commit) is that all
log messages are sent into the user's logger, even messages that come
about as part of DrRacket's implementation. It isn't clear how to fix
this without enumerating all of the possible messages to share and
explicitly forwarding them (both of which are suboptimal things).

On the plus side, the GUI now uses the "debug@GC" notation in a text
field, and when the logger pane is not open, there is no extra work
going on. Plus other, minor GUI improvements.
2012-12-26 22:38:42 -06:00
Robby Findler
f6805ea0c2 remove fancy delay dance around load-collections-xref 2012-12-26 22:37:45 -06:00
Robby Findler
8a3f662d51 git rid of thread unsafe use of load-collections-xref
This was there, I believe, to avoid latency when clicking
on the [docs] links in the language dialog. But now that
we're using a database anyways, loading the xrefs is fast.
2012-12-26 21:20:46 -06:00
Robby Findler
0a6d8822b0 adjust DrRacket logging support following comments from Neil Van Dyke
- use the same font/size as the definitions/interactions window
- add a checkbox to control scrolling behavior and,
- when scrolling, scroll to the begining of the line, not the end
2012-12-26 09:03:43 -06:00
Robby Findler
7041ea1d80 adjust online expansion's internals to call set-dirty only at
the end of an edit sequence instead of on every edit inside
the edit sequence
2012-12-24 12:31:55 -06:00
Robby Findler
fc2f931755 fix language dialog tooltip positioning code for mac os x 2012-12-23 12:37:53 -06:00
Robby Findler
0fecdaddf7 avoid showing/re-hiding tooltip when it wouldn't move
More mouse events seem to come in under windows than
mac os x, leading to the bad flashing behavior described
in PR 13384

closes PR 13384
2012-12-23 09:52:57 -06:00
Robby Findler
3ab14bbafe initialize the delegate text for a new frame
related to PR 13379
2012-12-22 11:47:30 -06:00
Robby Findler
d7e6f35b97 guard against spurious status messages 2012-12-22 08:30:54 -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
f4f7833531 move some literal strings into the string constants
(they should have been there ages ago ...)
2012-12-21 21:35:09 -06:00
Robby Findler
200ec130a0 drracket's online compilation now tracks files loaded during expansion
use these files to determine if a file is dirty (and thus needs
to be recompiled) when another file is saved.

closes PR 13307
2012-12-21 21:20:23 -06:00
Robby Findler
2fced5d7d6 drracket tracks the frame position and size on a
per-monitor-configuration basis and (possibly) moves/resizes
the frame when it changes
2012-12-21 19:22:59 -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
e19243329c adjust drracket to track an lru order on tabs and use it
when closing one to pick the next one to show

added the touched and get-last-touched methods to tab<%>
2012-12-19 10:50:01 -06:00
Philippe Mechai
00827a133a Fix language config dialog not showing when some languages are disabled 2012-12-05 18:45:04 -05:00
Robby Findler
5163d424c3 Adjust the limit memory dialog to give a warning about the
consequences of disabling the memory limit

closes PR 13337
2012-12-03 08:54:51 -06:00
Robby Findler
325600b0cf disable the aspell preference a little more agressively in case someone
has old state lying around with the preference turned on
2012-12-02 15:32:33 -06:00
Robby Findler
33ca14a603 fix the shortcut for "The Racket Language" in the language dialog
closes PR 13299
2012-12-01 16:08:06 -06:00
Robby Findler
993cd40208 Adjust DrRacket so the window can get narrower
For example, a new DrRacket window (with a file named tmp.rkt in the
and 356 afterwards.  This is under mac os x with, I believe, the
default system font sizes. (The file is important because different
languages can have different buttons in the toolbar and the filename's
length itself can affect the minimum size.)

Mostly this change is the addition of a new kind of panel that
lets its children have multiple fixed sizes (as opposed to
just a single minimum size and (optionally  arbitrarily large))
It also adjusts the various toolbar buttons to use this new code.

Also, there's a few tweaks to shrink other things that became the
limiting factor in shrinking the width of the DrRacket window.

Currently, at least for #lang racket programs, the toolbar buttons
along the top of the window are the limiting factor (including the
save button).  With a bogus language (ie, #lang rackeeet), the bottom
bar is the limiting factor, since that will have only the Save, Run,
and Stop buttons.

related to PR 13281
2012-11-29 09:43:05 -06:00
Robby Findler
97454b6e55 guard use of exn-message
closes PR 13316
2012-11-28 13:17:41 -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
11a5721b59 made the install-plt menu item's browse
file dialog show files with ".plt" by default.

Also, clarified the docs for finder:default-extension

closes PR 13104
2012-11-22 20:35:06 -06:00
Robby Findler
5b18645a9a added spelling dictionary support
related to PR 13242
2012-11-22 19:24:22 -06:00
Robby Findler
25e92e2cc2 use "replace" instead of "delete" for executable creation when
the file already exists and improve error handling

closes PR 13243
2012-11-22 15:21:51 -06:00
Robby Findler
b4b7340fd9 add guards so the module browser
status line isn't updated
anymore when it is closed

(probably) closes PR 13083
2012-11-22 14:53:31 -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
c359e371bf add a toolbar option for being on the top,
but with the small size buttons

closes PR 13281
2012-11-21 21:43:44 -06:00
Robby Findler
4ba1c119d4 fix bug in recent tooltip-related commit 2012-11-17 21:26:02 -06:00
Robby Findler
4774d7fea0 made the 'one-line-summary' of the drracket languages be in tooltips,
instead of in a message% object near the bottom of the dialog
2012-11-17 20:15:19 -06:00
Robby Findler
4befb20bd0 remove the mode where reader errors discovered via online check syntax
are shown in the corner of the window

This was an attempt to avoid opening up a whole status line in the
bottom of the window much of the time. But it doesn't really work
since as soon as you have a syntax error (which are relatively common)
you get that whole line opened up. That it, this attempted GUI interaction
depended on the bogus premise that read errors are somehow happening
in a transient way between error-free states.

closes PR 13267
2012-11-17 13:20:04 -06:00
Robby Findler
fda9d211b7 Add more items to the frameless help menu
closes PR 13262
2012-11-17 13:20:03 -06:00
Robby Findler
d0ce0de398 change the way that the delegate text is specified, using
getter/setters instead of overriding a method

this has the benefit that the delegate does not have to be
rebuilt when switching tabs in drracket; we just leave the
old delegate on the old definitions text, and the swap it
back into the editor-canvas when we swap the text% object
itself back in.
2012-11-16 14:33:17 -06:00
Robby Findler
b822efb9e5 add a check when switching between tabs to only do the required
work when the current tab isn't the one we're switching to
2012-11-11 08:53:13 -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
2626824aef detect when tracing:reset doesn't need to happen and skip it 2012-11-11 08:53:12 -06:00
Robby Findler
c5330194a9 improve drracket's response to an unhappy aspell program
Specifically, two things:

 - make drracket more careful to not crash when aspell
   doesn't behave, and

 - have a more careful test when clicking the menu item
   (it now does a trial run of aspell instead of just
    looking for the binary)

closes PR 13242 (I realize there is still a feature
request mentioned in the audit trail of that PR, but
since the main problem is fixed, I'll consider that
to just be something separate)
2012-11-10 13:00:09 -06:00
Robby Findler
4421e227ff when changing the error arrows, only invalidate the editor
when the arrows are actually different (just using eq? here)
2012-11-10 08:51:58 -06:00
Robby Findler
867f2d3a43 use the real rectangles-intersect? predicate, not a broken one 2012-11-10 08:51:58 -06:00
Robby Findler
d20f9a8866 should have been removed in an earlier commit, but I wrote
the wrong git commandline
2012-11-07 21:52:14 -06:00
Eli Barzilay
672910f27b Lots of bad TAB eliminations.
I started from tabs that are not on the beginning of lines, and in
several places I did further cleanings.

If you're worried about knowing who wrote some code, for example, if you
get to this commit in "git blame", then note that you can use the "-w"
flag in many git commands to ignore whitespaces.  For example, to see
per-line authors, use "git blame -w <file>".  Another example: to see
the (*much* smaller) non-whitespace changes in this (or any other)
commit, use "git log -p -w -1 <sha1>".
2012-11-07 11:22:20 -05:00
Eli Barzilay
26045a27fb #lang racket' -> #lang racket/base' conversions in drracket and in redex. 2012-11-07 08:03:44 -05:00
Robby Findler
c02797b121 improve the language dialog a little bit:
- make clicking on the example languages
  select the 'The Racket Language' radio button
- when the clicked example language matches
  the buffer, have a more friendly message
2012-11-06 20:31:12 -06:00
Robby Findler
66c1045b42 adjust the language dialog so that clicking on the example
the corresponding #lang line.
2012-11-06 19:15:53 -06:00
Eli Barzilay
14d8c8b5a5 Newlines at EOFs. 2012-11-06 14:07:15 -05:00
Robby Findler
95ff9637c0 make ellipsis clickable 2012-11-06 12:12:02 -06:00
Robby Findler
3bbf6035d1 adjust the language dialog based on feedback from dev@ 2012-11-06 09:46:18 -06:00
Robby Findler
f22aaec21d the 'audit the invalidate-bitmap-cache' commit (2 commits ago) avoided
running the 'redraw the definitions/interactions label' timer when the
language didn't ask for those labels; this commit also avoids running
the timer when the user has disabled the labels
2012-11-04 19:52:52 -06:00
Robby Findler
81dc3bae37 audit the calls to invalidate-bitmap-cache in the framework and in
drracket and try to make them happen less often (or, if there will be
multiple ones, try to guarantee that there is an edit sequence)
2012-11-04 19:02:55 -06:00
Robby Findler
ef3eb3154a adjust log following to make it work for the middle of a drracket
editing session
2012-11-04 14:39:55 -06:00
Robby Findler
e9e2557356 unbreak code that changes drracket's dock icon dynamically
(when transition to or from the weekend or valentines day)
2012-11-04 14:39:55 -06:00
Robby Findler
5768009e3b Revise the language dialog to emphasize the teaching
languages and the 'in the source' language at the expense
of all other dialog-based languages
2012-11-03 13:54:48 -05:00
Robby Findler
6f5e43b851 added a script that collects log messages for use in performance debugging drracket 2012-11-01 21:13:39 -05: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
93aea7036b hide the get-online-expansion-colors method 2012-10-29 06:45:13 -05:00
Matthew Flatt
fa743d7058 remove obsolete "based on" entry 2012-10-27 21:34:08 -06:00
Sam Tobin-Hochstadt
4124c9a41b Add more specific class types instead of Any.
Fixes Insert Large Letters dialog.  Merge to 5.3.1.
2012-10-27 17:44:52 -07:00