[plt-scheme] Parentheses and color

From: Robby Findler (robby at cs.uchicago.edu)
Date: Thu Jul 5 22:57:34 EDT 2007

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
> >
>


Posted on the users mailing list.