freeride-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [FR-devel] Newbie to freeride.


From: Baptiste Lepilleur
Subject: Re: [FR-devel] Newbie to freeride.
Date: Tue, 7 May 2002 15:04:01 +0200

----- Original Message -----
From: "Curt Hibbs" <address@hidden>
To: <address@hidden>
Sent: Monday, May 06, 2002 10:48 PM
Subject: RE: [FR-devel] Newbie to freeride.


> Yohanes Santoso wrote:
>
> > My main motive in joining this team is to create an remacs. As some of
> > you may notice, I am the person who asked about existance of emacs in
> > ruby language in ruby-talk.
>
> [snip]
>
> > I hope by the time rubyride is ready for release, there is already a
> > lisp->ruby converter so that all those rich libraries from emacs are
> > not wasted.
> >
> > Does my motive run against Curt's and Rich's vision?
>
> I'm not really sure, as I don't know emacs. Hopefully, someone else can
give
> a better read than this. However, read my next comment below.
>
> > If not then I'd like to start by creating a new plugin: BufferFactory
> > and Buffer. Buffer will be character-addressable, and serve as the
> > model in the MVC model. Modification to the content of the buffer will
> > result in two notifications, pre and post change notifications, to all
> > subscriber. The notification will be quite detailed so as to allow the
> > next plugin: BufferUndo.
> >
> > Each Buffer can optionally be associated with a BufferUndo which will
> > record changes made to Buffer.
> >
> > Perhaps notification is not a good name. 'Hook' seems more appropriate
> > as modification to content by other plugin is allowed. For example, if
> > there is an AutoIndent plugin, it would subscribe to the pre-change
> > notification of buffer A; then when A changes, it will send a
> > pre-change notification to the AutoIndent plugin. At that time
> > AutoIndent can opt to modify the nature of the changes (add/extract a
> > few space).
> >
> > Then there can be another plugin, Mode, which associates several
> > plugin to the appropriate hook from Buffer. For example, editing a C
> > code would require CAutoIndent, CHighlighting, etc, to be associated
> > with Buffer.
> >
> > Basically Buffer will be a 'dumb' storage with very few native
> > functionalities such as determining min point, max point, curr
> > point. Other plugins are added to provide functionalities: AutoIndent,
> > LineAddressable, LineCounter, Undo, Redo, Region, Rectangle, Mode,
> > etc.
> >
> > How dumb is a Buffer? Could be so dumb that it uses array as the
> > storage method, or could be as smart as having virtual memory manager
> > so that it can handle terabytes of data. But whatever the underlying
> > storage method, the outside world shouldn't be too concerned.
> >
> > Very emacs-ish? Well, that's the most flexible editor out there. It'd
> > be hard to find anything more flexible than it. Very complicated? Not
> > really.
>
> This sounds like it would be a replacement for the Scintilla code-editing
> control that we are using.

Indeed, those functionnalities are already provided by Scintilla with some
limitation (I'm not sure what Region and Rectangle are).

> Because FreeRIDE is designed to be completely flexible and extensible with
a
> 100% plugin architecture, there's no reason you couldn't write a plugin
that
> creates a whole new type of EditPane that could plug-in and replace and/or
> complement the existing Scintilla-based plugin.

Replacing Scintilla would be a lot of work (I have been using Practical Ruby
for a while and Scintilla is very stable). What might be interesting is an
abstraction layer to deal with the text, undo/redo and 'macroization'. That
way, it would be possible to have the same smart indent module for Scintilla
and for a text mode editor (which raise some other issue like styling,
should it be abstracted too ?).

> At best, this might be great and wonderful, and at worst it could be a
> needless duplication of effort. No judgments here -- I just have no idea
(I
> concentrating too hard on getting out the initial GUI Framework to put
much
> thought into it at the moment).
>
> Anyone else have any thoughts on this?

I never really though to make FreeRIDE into another emacs. Where are you
driving that project to ? While emacs is very flexible and have a lot of
functionnalities, I never really managed to get into it (this is my personal
opinion, some will disagree). Because there is a lot of commands, you often
needs to enter a sequence of two or three keys to run a command. I'm not
saying it can not be done without emacs underlying complexity (emacs was
originaly a text based application, with a text command line and the Xemacs
version never had a great UI), but it would require careful UI design.

The picture of FreeRIDE I had was a powerful source editor for Ruby, and may
be some related file formats such as XML and HTML. Integration of debugging,
refactoring, unit testing, project (files, settings...), configuration
management (cvs...). May be also some UI related tools (I don't know a thing
about FOX), but icon/toolbar/menu editor, documentation/help editor. And
probably some other tools to help develop/customize FreeRIDE.

Baptiste.
---
Baptiste Lepilleur <address@hidden>
http://gaiacrtn.free.fr/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]