[racket] How to find code (that implements a widget in drracket)

From: Lorenz Köhl (rainbowtwigs at gmail.com)
Date: Sun Jul 7 02:40:01 EDT 2013

I wanted to read/hack on the code that implements the contour window in DrRacket.

But I couldn't find it!

Don't tell me where it is though!
I'm more interested in the search process a more experienced racketeer/hacker would go through to solve this problem. What I did:

- Search the docs: Two results describing the menu entry for hiding showing the contour. I didn't see how to get to the code from here

- use 'find' in the shell with search string 'contour': just source related to plot

- Grepping the code: grep -RiIl --exclude '*plot*' contour .   from the top racket/ directory

./.git/HEAD
./.git/logs/HEAD
./pkgs/drracket-pkgs/drracket/drracket/HISTORY.txt
./pkgs/drracket-pkgs/drracket/scribblings/drracket/menus.scrbl
./pkgs/drracket-pkgs/drracket/scribblings/tools/frame.scrbl
./pkgs/drracket-pkgs/drracket/scribblings/tools/unit.scrbl
./pkgs/images/scribblings/flomap.scrbl
./pkgs/math/scribblings/math-flonum.scrbl
./pkgs/math/scribblings/math-special-functions.scrbl
./pkgs/racket-pkgs/racket-test/tests/racket/benchmarks/common/psyntax-input.txt
./pkgs/racklog/racklog.scrbl
./pkgs/sgl/gl.rkt
./pkgs/sgl/scribblings/gl.scrbl
./pkgs/string-constants-lib/string-constants/private/english-string-constants.rkt
./pkgs/string-constants-lib/string-constants/private/french-string-constants.rkt
./pkgs/string-constants-lib/string-constants/private/portuguese-string-constants.rkt
./racket/doc/drracket/doc-index.html
./racket/doc/drracket/Menus.html
./racket/doc/images/Overview.html
./racket/doc/local-redirect/local-redirect.js
./racket/doc/math/flonum.html
./racket/doc/math/special.html
./racket/doc/racklog/racket-w-logic.html
./racket/doc/release/HISTORY.txt
./racket/doc/search/plt-index.js
./racket/doc/sgl/blueboxes.rktd
./racket/doc/sgl/doc-index.html
./racket/doc/sgl/gl.html
./racket/doc/tools/drracket_frame.html
./racket/doc/tools/drracket_unit.html
./racket/lib/collects/ffi/examples/magick.rkt

I can't see a relevant source file, did I miss it? If not, what do I do now?
Have I missed some crucial source searching techniques, either specific to Racket or in general?

[side note: I wish it was possible to click a frame/widget and inspect/change it live (I have recently discovered Smalltalk and the 'liveliness' aspect of it is pretty rad)]

Posted on the users mailing list.