Commit Graph

630 Commits

Author SHA1 Message Date
Robby Findler
12e8332c55 move follow-log.rkt to tests/drracket 2012-11-16 07:26:38 -06:00
Robby Findler
d11f63bd46 fix bad require in follow-log.rkt and add some more histogram utils 2012-11-15 12:22:13 -06:00
Robby Findler
a9b6f8ea46 improve drracket's event log following code
- add support for getting a histogram of event timings

 - add support for scripting drr to be able to make comparisons
2012-11-15 07:49:04 -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
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
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
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
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
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
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
Robby Findler
e067a4415a fix call to message box to remove incorrect style flag
merge to the release branch, please
2012-01-11 13:16:46 -06:00
Robby Findler
95ac3c86f7 fixed bug in the way aug:keymap extracts the names
now it should return only the canonical names of the keybindings
(instead of potentially returning both the canonical and
non-canonicalized names)
2012-01-08 07:07:56 -06:00
Robby Findler
950d165133 fix the not-a-language message so that the styles in the REPL are right 2012-01-06 20:59:34 -06:00
Robby Findler
48772f2e40 when double clicking in a comment, fall back to word-based instead
of sexp-based selection

closes PR 12439
2011-12-12 14:45:27 -06:00
Robby Findler
1d03e5f711 adjust the double clicking in racket mode so that clicks on the
(instead of sexp-based)

closes PR 12421
2011-12-05 21:01:28 -06:00
Robby Findler
082978effe improve the double-click-on-word behavior for scribble (generally when
double clicking inside a string) and when clicking on close
parentheses (specifically, only special case close parens that are
actually parentheses according to the colorer, rather than special
casing all close parens).
2011-11-30 16:55:54 -06:00
Robby Findler
458e2c2282 some long overdue Rackety: renaming the 'scheme:' exports of the framework to 'racket:' 2011-11-30 06:45:50 -06:00
Robby Findler
dd4f307a47 use an aug-keymap instead of a keymap for the scheme mode keymap container 2011-11-29 14:27:51 -06:00
Robby Findler
1c2f9cd721 adjust the handling of the scheme mode keymap so that it can go
before the plain text-mode keymap.

Add a doubleleftclick binding to the scheme mode keymap so that
we can have sexp-sensitive double clicking in the drracket editor
2011-11-29 13:46:23 -06:00
Robby Findler
e935b1fa8e change the framework & drracket so that they still use the colorer
methods (paren matching, mostly) when the colorer is frozen
(but continue to avoid using them when the colrer is stopped)

closes PR 12374
2011-11-29 13:46:23 -06:00
Robby Findler
11994bd4f8 fix a bug in the module lexer; it was returning the wrong length for the tokens
it creates when the #lang line isn't well-formed (eg "#lang racke").

closes PR 12399
2011-11-28 21:16:31 -06:00
Robby Findler
d580518e66 adjust the autosave error code to print the stacktrace
related to PR 12400
2011-11-28 15:34:30 -06:00
Robby Findler
081dc6c9a1 adjust the completions box so that it doesn't raise the error mentioned in 12396 anymore
closes PR 12396
2011-11-26 18:30:25 -06:00
Robby Findler
e942bb1c3a add another printf for drdr's consumption 2011-11-25 17:54:56 -06:00
Robby Findler
ca457b0052 add some debugging to see if I get more useful info for the module language test intermeittent failure 2011-11-25 15:13:11 -06:00
Robby Findler
6ea6483221 adjust number-snip% so that it subscribes to the file/convertible
protocol for 'png-bytes and 'text
2011-11-20 16:38:17 -06:00
Robby Findler
b726209dc5 fix the interaction between the automatic insertion of matching parens
and the magic fixup of opening parentheses.

This commit moves the automatic insertion of matching parens to the
scheme mode keymap, so it will now take affect in Racket mode editing,
only. Also, Rackety.
2011-11-16 19:36:18 -06:00
Robby Findler
3345415d71 Make the 'Show Replace' menu item be always enabled. Also, make it
set the keyboard focus to the replace editor.

It used to be disabled when the searching bar is hidden. In that case, it now
makes the searching bar visible.
2011-11-16 16:23:11 -06:00
Sam Tobin-Hochstadt
0754e6b702 Make autocompletion fuzzier, similar to the doc search.
For example, autocomplete of `cur-dir' will produce the same list of results as the documentation search, with `current-directory' first, instead of producing no results.
2011-11-13 16:33:17 -05:00
Robby Findler
4a3997ac1c use the focus table mixin for the autosave window so that drdr tests work right 2011-10-17 17:32:37 -05:00
Robby Findler
4d00b13ce0 adjust the autosave gui so that closing the window doesn't cause drracket to
exit (this only happened on non-mac os x platforms)

include in 5.2
2011-10-11 10:44:00 -05:00
Robby Findler
fcc720f43e adjust uses of after-load-file to use the success? flag 2011-10-08 10:50:27 -05:00
Robby Findler
7aa6153da1 adjust the calls to paragraph-{start,end}-position to specify the default argument 2011-10-07 14:02:27 -05:00
Robby Findler
93c1d1dd36 add a 'find longest line' menu item to the edit menu 2011-10-07 11:48:39 -05:00
Robby Findler
9b3f2427d7 make right-click in the space between the definitions and
interactions window pop up a menu to let you change from
vertical to horizontal orientation
2011-10-04 16:47:10 -05:00
Robby Findler
6fd2e9c1d3 fixed planet docs; closes PR 12178 2011-10-04 12:56:35 -05:00
Robby Findler
3bfce02bd6 fix my stupidity 2011-10-02 18:14:55 -05:00
Robby Findler
c455631eb3 fixed another path/string bug in the autosave recovery dialog 2011-10-02 17:19:27 -05:00
Robby Findler
951de8cc51 add get-default-percentages to panel:dragable and then add a dragable panel
to the debugger
2011-10-02 14:34:28 -05:00
Robby Findler
b71e562284 fix crlf mode initialization 2011-10-01 08:10:25 -05:00
Robby Findler
4a2757f200 Adjust DrRacket so that it saves files with CRLF
line terminators when:

  a) running under windows, and
  b) the file on the disk (when DrRacket first opens it)
     contains all CRLF line endings.

In all other situations, the file is saved with LF terminators.

Before this commit, DrRacket would always use the platform-specific
convention, regardless of the original content of the file.

closes PR 12242
2011-09-30 17:08:07 -05:00
Eli Barzilay
093236fea4 Improve code generation in the framework collection.
Instead of generating a file for code and one for documentation, do both
via a macro instead.  Most of the code is the same (modulo reformatting
in a more modern style), and instead of printing the result to a file,
it just returns it as the result of a macro.  (Since this is done in a
naive way, the macro is bad -- it is unhygienic since this is basically
what it did before only through a generated file; it should eventually
be improved to avoid these hacks.)
2011-09-30 10:51:28 -04:00
Eli Barzilay
656de69636 Don't create a page-setup menu item if `file-menu:create-print?' returns #f. 2011-09-30 10:45:43 -04:00
Eli Barzilay
01c859072e Rename "standard-menus.rkt" -> "standard-menus.rktl".
Since it's a file that gets included.  This is likely to be temporary,
if I get on with turning the whole thing into a macro.
2011-09-30 10:45:43 -04:00
Robby Findler
3a3ce656c4 add splicing-* to the default indentation preferences setting 2011-09-29 06:55:05 -05:00
Robby Findler
bef4ed1fd4 adjust frame position preferences for the case when a monitor has gone away 2011-09-28 21:04:56 -05:00
Ryan Culpepper
afc9210599 revert some (require racket/pretty) to (require scheme/pretty) 2011-09-28 19:01:27 -06:00
Robby Findler
c8cbe81e51 fix problems with the autosave recovery gui and add a drdr test for it 2011-09-28 17:06:30 -05:00
Robby Findler
abeaebcad0 remove debugging printf 2011-09-28 17:06:29 -05:00
Ryan Culpepper
c7f86d276c removed useless requires 2011-09-27 19:28:44 -06:00
Robby Findler
2ec720176a extend and refactor minor stuff in the framework
specifically add an argument to move/copy-to-edit so that it
does copy-only and export a function for trigger a submission
to the input port of a text:ports<%> object programmatically
2011-09-22 10:51:47 -05:00
Robby Findler
048fa1d7b8 get rid of the "open here" functionality
This is a backwards incompatible change; there is a more complex change
that just stubs this stuff out that may be better that we may need
isntead of this commit.
2011-09-21 22:53:03 -05:00
Robby Findler
8e5bb730b3 guard a use of get-root-data in the token tree implementation
closes PR 12072
2011-09-16 19:04:14 -05:00
Robby Findler
89ef65a746 fix the collapsed snipclass so that it cooperates with the wxme library and
thus saved files with collapsed snips can be required in non-GUI contexts
2011-09-13 14:58:39 -05:00
Vincent St-Amour
68aad051e9 Reduce priority of paren matching highlighting. 2011-09-08 18:01:16 -04:00
Robby Findler
67d17645c4 wrong super interface 2011-09-05 12:33:53 -05:00
Robby Findler
8a30ed73b7 add forgotten file 2011-09-05 09:41:49 -05:00
Robby Findler
a67f509f90 add frame:focus-table-mixin & related things to be able to make drracket
test suites that don't depend on the OS giving any focus messages
2011-09-05 08:30:49 -05:00
Robby Findler
171858add1 wrong check for the result of system-type 2011-09-02 08:58:22 -05:00
Robby Findler
49dbb5d963 adjust the close/close window/close tab menu items to be more like other apps on the various platforms 2011-09-01 10:53:09 -05:00
Robby Findler
8f6fb87597 adjust keybindings to free up <menukey>-r for "Run" and <menukey>-t for "New Tab" 2011-09-01 10:53:07 -05:00
Robby Findler
ce0da835ce adjust the 'recently opened files' menu item so its contents are contain fewer redundant entries
amusingly I was reminded to do this by Matthew's recent commit message
saying that normal-case-path is usually a bad idea
2011-08-30 16:11:00 -05:00
Robby Findler
9fcc12b6a0 adjust drracket to be more accomodating in the presence of hostile filesystems 2011-08-27 16:41:35 -05:00
Robby Findler
6823941080 adjust framework get and put file functions to use simple-form-path instead
of normalize-path (I'm unsure of the ramifications of this change ...)
2011-08-27 07:54:11 -05:00
Robby Findler
1d13d1399c adjust the framework get file dialog functions to not call normalize-path unless
they've recently checked to see if the file exists
2011-08-27 07:54:10 -05:00