Commit Graph

684 Commits

Author SHA1 Message Date
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
87dae0df7a add support for collecting backtraces 2012-11-08 07:45:19 -06:00
Robby Findler
741be85f07 make the log follower always available in DrRacket 2012-11-07 16:07:07 -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
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
c375042f10 fix test so that labels can be regexps (as was already
documented) and tidy up framework/test docs
2012-11-03 13:54:48 -05:00
Robby Findler
0377bda947 make popup menus respond to mouse-up events, not mouse-down ones 2012-11-02 20:32:55 -05:00
Robby Findler
4ead534227 It appears that the colorer was always creating a new port to read
from, each time it starts on a new event boundary (this means that in
the old (5.3) version of the colorer, it also created a new co-routine
on each event boundary! (in other words, most of the reason one would
want co-routines here was bogus))

So, refactor the code to just always do this and eliminate a bunch of
set!'s and private fields in favor of just passing arguments like sane
code does. (We can't eliminate all of that, because we still do need
to be able to abort and thus all calls must be tail calls.)
2012-11-02 10:24:34 -05:00
Robby Findler
95841b9303 lift the restriction that the port passed to open-input-text-editor
cannot change its revision number during reading

This restriction was enforced only for editors that have non
string-snip% snips. The restriction was in place because the
implementation strategy was to chain thru the snips in the editor
using (send snip next) and that isn't safe if the revision number
changes.

The lifting of the restriction is implemented by tracking the position
in the editor where the last snip ended and, if the revision number
changes, starting over trying to get a snip from that position. This
has the effect that, if the revision number never changes, the code
should behave the same as it was doing before (so hopefully any new
bugs I've introduced in this commit will only show up if the old
implementation would have raised an error)

Also, exploit the lifting of this restriction in the colorer so it
doesn't to restart the port during to coloring that happens along with
the parsing
2012-11-02 10:24:34 -05:00
Robby Findler
9582fe830a add logging to the colorer 2012-10-31 10:16:16 -05:00
Robby Findler
226a7140b5 fix a bug in the colorer refactoring
As it turns out, changing the color (via change-style) can somtimes
split snips, which can change the revision number, which means that
the open port into the editor is no longer valid.

Since this doesn't seem to happen very much when editing in DrRacket,
we just detect this situation and give up on this colorer's port, and
hopefully it actually doesn't happen much (the place it happened that
let me notice this was when inserting an image via a menu in the
drracket test suites)
2012-10-31 10:16:16 -05:00
Robby Findler
f07c8cf490 changed the colorer so that it doesn't use a co-routine; instead,
refactor it so it doesn't add anything to the continuation ever, and
just check if it has been a while since we started (giving other
events a chance to run, if so). Also, interleave the calls to
change-style with the parsing of the buffer to get a more accurate
count of the time the colorer is taking
2012-10-30 22:11:52 -05:00
Robby Findler
789ab0d9f0 add missing docs for color:misspelled-text-color-style-name 2012-10-27 14:42:09 -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
5b3ac50fb9 add get-token-range to color:text<%> (it was already documented
as if it was there)
2012-10-16 10:51:45 -05:00
Robby Findler
4787361d7f show a dialog box saying that aspell/ispell cannot be
found instead of just silently not checking the spelling

also, fix a bug in that case that used to cause drracket
to just crash
2012-10-15 07:41:42 -05:00
Robby Findler
a59df8c7ee add preference settings so that the misspelled words color
can be configured
2012-10-14 22:27:50 -05:00
Robby Findler
44a0c8a6c1 adjust spelling code so that it runs in the abortable part
of the syntax colorer; adjust the spelling code so that it
uses nack events to communicate, in case things get aborted
2012-10-14 21:20:36 -05:00
Robby Findler
c75cc48f5c fix spell checker encoding 2012-10-14 18:45:10 -05:00
Robby Findler
72fa1d45a1 add capability to spell-check string constants
(calls out to ispell or aspell)
2012-10-14 17:40:56 -05:00
Robby Findler
c675cf47f0 adjust the print-to-ps preference in DrRacket so that you can also
choose to print to pdf as well. Also, enable the preference
under linux (ie, make it available to be chosen-- all platforms
still default to printing via the platform-specific mechanism)
2012-09-17 10:47:22 -05:00
Robby Findler
9b15450b08 export and document enabled-shown-button?
label-of-enabled/shown-button-in-top-level-window?
       and button-in-top-level-focusd-window?
2012-09-08 15:58:25 -05:00
Robby Findler
977fd37913 adjust contract for test:button-push so it isn't so ugly 2012-08-29 14:52:56 -05:00
Robby Findler
f1a4aeedba control-alt for menu selections probably shouldn't be
used under windows, so just give a menu shortcut under
macosx and under windows rely on the underscore thingy
2012-08-21 08:16:39 -05:00
Robby Findler
e38e959145 change the new 'find from selection' menu item so that it uses
cmd-alt-f on the mac (and control-alt-f on windows/unix, I believe)
2012-08-19 18:04:14 -05:00
Robby Findler
49eb4ab11c adjust the windows menu so that it doesn't rely on
various callbacks to keep its menu items straight, but
instead uses the on-demand callback to just get them
all right.
2012-08-16 19:16:57 -05:00
Robby Findler
e65cbdecf0 Rackety 2012-08-07 13:03:45 -05:00
Robby Findler
94a448413e add some highlighting to the line numbers to show where
the insertion point currently is

closes PR 12976
2012-08-07 12:12:45 -05:00
Robby Findler
b5f9751369 add some highlighting to the line numbers to show where
the insertion point currently is

closes PR 12976
2012-08-06 22:24:59 -05:00
Robby Findler
b16843a908 add a find-from-selection menu item that grabs the selection and puts
it directly into the find window

related to PR 12978
2012-08-06 18:00:57 -05:00
Robby Findler
9b39fc37f8 adjust the filename filter for the insert-images menu item
closes PR 12963
2012-08-02 07:17:09 -05:00
Eli Barzilay
2ebab9b93f Redo text sculpturing. 2012-07-06 16:07:30 -04:00
Robby Findler
8f892a2d3a when moving the focus to the replace window, also select the text
closes PR 12855
2012-06-20 09:27:16 -05:00
Robby Findler
dfa0305bb3 fix interaction between the framework's first-line-mixin and
line-numbers mixin

Specifically, when both are turned on, the #lang line now shows
the line number and shifts the "#lang ..." over to the same spot
where it is drawn when the first line is natually visible

Also, rackety
2012-05-15 22:08:42 -05:00
Matthew Flatt
964020f288 implement scribble/srcdoc' via submodules instead of expand'
Also add a `for-doc' require form, make `proc-doc' et al. provide
forms, make `provide/doc' an alias for `provide'.
2012-05-12 01:37:50 -06:00
Eli Barzilay
17090fca4f A bunch of fprintf' -> eprintf' conversions (and a few related things). 2012-05-06 12:06:00 -04:00
Robby Findler
80d57148d1 fix bug in docs; closes PR 12716 2012-04-22 21:54:19 -05:00
Robby Findler
35e818ae50 the autosave file might be deleted by the user after it is created
the first time but before the file is actually saved. guard against that.

closes PR 12698
2012-04-13 10:04:25 -05:00
Robby Findler
a475c078e2 add splicing-syntax-parameterize to the default indentation prefs 2012-04-05 17:34:45 -05:00
Robby Findler
a1446a037b be a bit more systematic with tabbing and magic square-bracket-ing for 'for's
also, add in for/sum and for/product
2012-03-28 07:21:09 -05:00
Robby Findler
617df05ef7 added a test suite for DrRacket that checks to make sure the Dear Dr
starts up on all of the days that have easter eggs (well, except 7/2,
since that one is hard to interpose on and hasn't changed in a long
time)
2012-03-26 15:43:56 -05:00
Robby Findler
b640b6b41c fix splash screen error handling code 2012-03-26 15:43:55 -05:00
Robby Findler
0d6b825377 add a preference to control whether or not there is an extra
pixel of space in between lines in DrRacket.

This change is based on Matthew's experience having a look
at the font setup on the three platforms.

He writes:
>  * Mac OS X: the convention seems to be to add space between lines.
>   TextEdit, for example, looks like DrRacket: the maze has spaces.
>
>   (I can't find a font that makes the maze look right, actually, even
>   if I adjust the line spacing.)
>
>  * Windows: the convention seems to be that space is built into the
>   font. DrRacket (and SirMail) draw lines more sparsely than Notepad.
>
>   Perhaps consistent with the differing conventions, the height of
>   "Courier New" at 11-pixel size is 14 on Windows, 13 on Mac OS X.
>
>  * Unix: the convention seems to be to add space. DrRacket looks like
>   the default Terminal and Text Editor programs on Ubuntu.
>
>   The maze nevertheless looks right everywhere, because the glyphs
>   extend an extra pixel above the declared bounding box!
2012-03-24 20:20:05 -05:00
Matthew Flatt
e01ebf6095 try module+' in place of slice' 2012-03-13 14:31:40 -06:00
Robby Findler
a7cb8fdc84 small improvements to the memory usage for files opened in DrRacket.
Before this commit, opening collects/drracket/private/unit.rkt required
about 17.5 megabytes of memory and after this commit, it is down to
about 15 megabytes.

The precise measurement I did was to create a frame and a scheme:text%
object in it, record the result of current-memory-use, open the file,
and record current-memory-use again.

For comparison, using a text:standard-style-list% object instead of
the scheme:text% requires only about 4.1 megabytes. One difference
being that there are about 3x more snips (10,204 vs 33,901 (after the
commit)), since we have one snip for each region that has a different
color in the scheme:text version, and the text:standard-style-list has
no colors and thus about two per line (there are 5006 lines in the
file).
2012-03-10 20:18:49 -06:00
Matthew Flatt
54a441c0e3 DrRacket default `module*' indentation 2012-03-09 10:34:57 -07:00
Asumu Takikawa
04f7bdbb02 framework: add missing methods to interface and docs
The set-replace-start and get-replace-search-hit methods were
missing in the text:searchable<%> interface. The latter was
also undocumented.
2012-03-01 13:17:48 -05:00
Eli Barzilay
f7c67b49a4 Big newline at EOF scan. 2012-02-29 00:28:11 -05:00
Robby Findler
eda4d294cc Lost the snipclass with the name (lib "collapsed-snipclass.ss" "framework")
somewhere between 5.1.3 and 5.2.1. Bring it back.

closes PR 12563
2012-02-14 11:26:20 -06:00
Sam Tobin-Hochstadt
e3609cdb32 Refactor and improve fuzzy searching in completion. 2012-01-13 14:39:05 -05:00