The framework is intended to be a collection of mixins that provide useful functionality in a variety of ways that someone building an app might want. That said, I agree the documentation could really use some help with introductory material and some examples and ... I don't know what. So if people have energy to work on how to do that, I would be delighted.
Here's an example of the kind of thing I'm talking about. This is just using racket/gui classes:
#lang racket/gui
(define f (new frame% [label ""] [width 200] [height 200]))
(define t (new text%))
(send t insert "#lang racket\n(define (f x)\n (expt x x))\n")
(define ec (new editor-canvas% [parent f] [editor t]))
(send f show #t)
but we can add a stuff from the framework, say, like this (to get search/replace to work):
#lang racket/gui
(require framework)
(define f (new frame:searchable% [width 600] [height 800]))
(define t (send f get-editor))
(send t insert "#lang racket\n(define (f x)\n (expt x x))\n")
(send f show #t)
If we change the editor class that gets created we can get syntax highlighting based on the #lang-line
#lang racket/gui
(require framework)
(define f%
(class frame:searchable%
(define/override (get-editor%)
(text:searching-mixin
racket:text%))
(super-new)))
(define f (new f% [width 600] [height 800]))
(define t (send f get-editor))
(send t insert "#lang racket\n(define (f x)\n (expt x x))\n")
(send f show #t)
I've tried to make the framework library's mixins and classes at least theoretically, be plausibly useful things outside of DrRacket but yes, the framework and DrRacket have certainly grown together with each other. Matthew Flatt started them in 1993? 4? and I've been slowly acreeting stuff into them since (with help from many others, of course!)
Robby