[plt-scheme] Parentheses and color
You can put it into planet (see the -a option to avoid actually
publishing anything) or you can make a new directory in plt/collects/
and put the files in there, or you can add a directory to the
PLTCOLLECTS environment variable. I think that's all of the ways,
anyways.
I'm not sure that tool is especially useful at the moment, but I hope
that it gives you (or whoever!) something to start with, to make
something better. Hopefully it gives some hooks into where to read the
manuals, if nothing else.
I guess the first thing to add would be a preference to disable it.
For that, you'd want to search for "preferences:" in Help Desk and
you'll also need the `refresh' method of the text, in order to react
to preference changes.
Robby
On 7/5/07, Ronny <plt-scheme at develo.biz> wrote:
> That sounds great! But how do you "put them into a collection"?
> I figured that once I have the collection, I can run setup-plt -l
> collection-name, but that doesn't help much, as it wasn't obvious, even
> after I consulted helpdesk, how to actually make a collection...
> I found "make-collection", which I could use after executing (require
> "entire/path/after/home/dir/collection.ss"), but no examples on how to
> use it, so I'm kinda stuck there.
> Ronny.
>
> Robby Findler wrote:
> > On 7/5/07, Dave Gurnell <d.j.gurnell at gmail.com> wrote:
> >> >> Note to the free-software users here: this appears to be a photoshop
> >> > file, and the gimp can display it. I used the version from etch (I
> >> > think 2.2.13).
> >>
> >> My mistake. I meant to save it as PNG, but obviously I hit the wrong
> >> option.
> >>
> >> http://www.davegurnell.com/files/
> >> drscheme_with_column_highlighting.png
> >
> > FWIW, that is relatively easy to accomplish with a tool. Put the two
> > below modules into files and put them into a collection (and run
> > setup-plt on that collection, so it gets registered with drscheme) et
> > voila.
> >
> > Robby
> >
> > (module info (lib "infotab.ss" "setup")
> > (define name "Column Highlighting")
> > (define tool-names (list "Column Highlighting"))
> > (define tools (list "column.ss")))
> >
> > (module column mzscheme
> > (require (lib "framework.ss" "framework")
> > (lib "class.ss")
> > (lib "mred.ss" "mred"))
> >
> > (define column-width 5)
> > (define column-color "lavender")
> >
> > (define column-mixin
> > (mixin ((class->interface text%)) ()
> > (define/override (on-paint before? dc left top right bottom dx
> > dy draw-caret)
> > (super on-paint before? dc left top right bottom dx dy draw-caret)
> > (when before?
> > (let ([column-width-pixels (get-column-width-pixels dc)]
> > [pen (send dc get-pen)]
> > [brush (send dc get-brush)])
> > (send dc set-pen column-color 1 'solid)
> > (send dc set-brush column-color 'solid)
> > (let loop ([x 0])
> > (when (< x right)
> > (when (<= left (+ x column-width-pixels))
> > (send dc draw-rectangle
> > (+ x dx)
> > (+ top dy)
> > column-width-pixels
> > (- bottom top)))
> > (loop (+ x column-width-pixels column-width-pixels))))
> > (send dc set-pen pen)
> > (send dc set-brush brush))))
> > (super-new)))
> >
> > (define (get-column-width-pixels dc)
> > (let ([style (send (editor:get-standard-style-list)
> > find-named-style
> > "Standard")])
> > (let-values ([(w _1 _2 _3) (send dc get-text-extent "x"
> > (send style get-font))])
> > (* w column-width))))
> >
> > ;; code to test, w/out running inside drscheme
> > #;
> > (let ()
> > (define f (new frame% [label ""] [width 400] [height 600]))
> > (define t (new (column-mixin text%)))
> > (define ec (new editor-canvas% [parent f] [editor t]))
> > (send t load-file (build-path (collection-path "drscheme")
> > "private" "rep.ss"))
> > (send t change-style (make-object style-delta% 'change-family
> > 'modern) 0 (send t last-position))
> > (send f show #t))
> >
> >
> > ;; tool integration
> > (require (lib "tool.ss" "drscheme")
> > (lib "unit.ss"))
> > (define tool@
> > (unit
> > (import drscheme:tool^)
> > (export drscheme:tool-exports^)
> > (define phase1 void)
> > (define phase2 void)
> > (drscheme:get/extend:extend-definitions-text
> > column-mixin)))
> > (provide tool@))
> > _________________________________________________
> > For list-related administrative tasks:
> > http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> >
>