[plt-scheme] Clean design of editor's Scheme parser, program nav. commands?
There are probably two pieces you want to look at: text% the editor
(it organizes snip% objects by lines, and snip% objects can be text,
or images or other things you define), and Scott Owens' parser
generator as connected to the editor in color:text<%>. The editor
provides editing functionality (mapping graphical locations and line
numbers to positions (offsets from the beginning of the editor) and
lots of hooks for observing actions like insertions, deletions, etc
etc, and other fancier stuff). Scott's parser generator provides a
spec for a programming language that can be used to generate an
online colorer (and other tool that process parsing-level information
about a program). Roughly, you give a yacc-like spec, and you get out
a mapping from positions to tokens (ie, given a position, it will
tell you what token you're inside, including comments).
None of this comes from Emacs and, unlike (last i checked) Emacs, the
coloring/paren matching cannot get confused.
If you have more specific questions as you try to build something,
let us know. Hopefully the above is enough to get you started reading
the manuals.
hth,
Robby
On Aug 5, 2006, at 8:58 PM, Derek Peschel wrote:
> I've looked at a few editors -- Climacs, Hemlock, jove, GNU Emacs,
> Lispworks's
> editor -- and now I'm starting to try out PLT Scheme. My goal is
> to find a
> clean set of commands for navigating through LISP/Scheme programs,
> or find
> an incremental buffer parser and a set of navigation functions that
> I can
> build my own commands on.
>
> Were the PLT program-navigation commands copied from Emacs? Are
> the under-
> lying parsing and navigation functions all in color:text<%> and
> scheme:sexp-snip<%>? Can the editor get the parse tree, navigate
> through it,
> and find an ending text location?
>
> If anyone has done any work with PLT studying the completness of
> the design,
> creating documentation for navigation commands that uses uniform terms
> to describe the object parsed ("the non-symbolic form before point"
> or some-
> thing even more specific) and the ending cursor location ("before
> the open
> parenthesis of the list"), or creating use cases, I'd love to hear
> about it.
>
> -- Derek
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>