Good cross-platform IDE / multiple document text editor for ruby / rails?

Hello Randy,

   * I'm always on the lookout for a better editor, and

   * I'm looking for an editing component (widget, control, ...) for a project
I'd like to do

I think there is not very much except Scintilla.
I've seen a Delphi component some time ago written for a php editor,
but it wasn't under heavy development and missed a lot of features.
Don't know if Simon found some time to work on this "aeditor"
component, which is 100% ruby (I'm not sure if this is a good idea,
because hard to get it snappy).

For that project, I'd like to find an editing component that:
   * is snappy, even on slower overloaded machines
   * without listing all of them at the moment, has all the typical features
of an editor, and in addition has the following:
      * customizable syntax highlighting

Arachno don't have it yet. But it is planned based on simple regexpr
or as C extension.

      * keyboard macros (Arachno has this, according to
http://www.ruby-ide.com/ruby/features.php\)
      * a macro language, and

Not yet. But it will come, and it will be Ruby (or Python - if you
prefer this). I started with the macro language two weeks ago when
a customer mentioned that it might be good enough if the macro
language runs in a second process and communicate via sockets with the
main application. In this way i can work around the current limitation
that there can be only one ruby interpreter in one native thread.
And this also gives a higher security level during development if a
macro crashs. But adding this raises a few interesting points and i
have to check every source line if there are problems. As for example
you have to completely disable the user interface before running
macros.

      * which can be integrated with recorded keyboard macros (it is quite
common for me to start writing a macro by recording keystrokes. That macro
may not have all the features I need (especially conditionals) so I am used
to taking that macro and adding code from the macro language so that it can
do everything I need)

Nice idea. AFAIK even XEmacs don't support it (at least without shooting
yourself in your foot).

      * folding based on custom "sentinels" or features of the file (I have
nedit macros that fold on any TWiki level heading (i.e., on "---+ " through
"---++++++ ")

I could implement something like this but it's the first time i
hear about it. Everybody wants it either on syntax elements
(implemented in Arachno) or on indentation.

      * in the macros, the ability to define a portion of a file and search
within that portion (that's not explained very well (I'm not sure I'm stating
all the requirements), but here's an alternate explanation: I have files in
which I store multiple records (separated by a record separator string
(currently "---++ ", but intended to be easily changable)). I have nedit
macros that can search the file and find records that contain all of a list
of search terms.

As long as the search range does not have gaps it should work with all
the macro enabled editors. First set the selection and then use the
"search in selection" (or whatever it is called) option. And of course
it might be much easier to do it yourself with simple string
operations in your macro language (assuming it is a complete and universal
language).

      * able to export selected records to another application for further
processing (sort of like an abiltiy to sort, although the first external
application will not return any results, the record is just specially
formatted and displayed for the user) (so, in fact, unlike the similar
capability in nedit, I need an option that either deletes the text sent to
the other application for replacement by what is sent back from that
application, or that does not delete that text (as nothing will be sent back
from that application)

This feature will be in the next release (expected end of next week).
You can even catch the exit code and decide on this if you want to replace
the selected text range with the external application or not.

      * written in a language that I can grok so if necessary I can customize
it still further (and with a license that lets me do that)

Okay, thats a knock out criterium for me. I will not publish my eiffel
code, but i think if you have a good complete macro language it is not
necessary. When i see what you can do with VisualSlick Edit then you
don't really need it. And if the wanted features are so different from the
current state of the editor, i doubt that you want to hack inside a
300000 lines project.

      * usable at resolutions from 640x480 and up

Arachno has a nice slimline mode, (even hidding scrollbars on small
displays) you simply can't get more then this.

This was just a quick off the top of my head list--if Arachno satisfies these
criteria I may need to look a little closer.

What is the editor component in Arachno written in? Does it have any sort of
open source license? Does it have the features listed above?

It's written in Eiffel, and from your mentioned features i can't find
something really new, just your heavy demand of macro programming, but
this is "under development".

So i think Arachno will be (at the current development level) not
your editor, but maybe you like to try it out end of 2006. I think
until then i implemented the points on your requirement list.

At the moment i see that there is heavy feature demand from two different
camps, the one that want to add more ruby specific features (mostly
this are the java converting guys) and the other people that want a general
purpose editor with some ruby support (long time programmers of
scripting languages and xemacs/vi users)

So i continue to do what i did in the past: look what i would like to see in
a Ruby IDE and implement this first. Thats the way every successful Shareware
application was developed in the past.

···

--
Best regards, emailto: scholz at scriptolutions dot com
Lothar Scholz http://www.ruby-ide.com
CTO Scriptolutions Ruby, PHP, Python IDE 's

Beautiful! That was it: just had to install motif and follow the
instructions in Makefile.linux for editres. That was a major frustration.

Wonderful!

I'll pass this on to Thorsten Hause, since he may know how to get this
fix into the Debian package.

Good idea--do that! (But, I'd be a little surprised if he's not already aware
of it as I often see him on the nedit mailing list.)

regards,
Randy Kramer

···

On Wednesday 24 August 2005 05:05 pm, Joel VanderWerf wrote:

Thank you everybody for the active discussion.

Again, I apologize for initially cross-posting this thread. I will
not do it again.

Zimba, to which list would you have posted this particular topic?

···

On 8/25/05, zimba-tm <zimba.tm@gmail.com> wrote:

What I suggest is that people don't cross-post, but rather choose one
list that has the bigger chance to answer the question they have. If
the thread dies with no satisfying answer, then start a new one on the
second ML with a summary of the preceding discussion included.

On 25/08/05, Randy Kramer <rhkramer@gmail.com> wrote:
> On Thursday 25 August 2005 12:34 pm, James Britt wrote:
> > Randy Kramer wrote:
> > > Do you have any alternate solutions (presuming there was a valid reason
> > > for the crossposting in the first place, which I feel there sometimes
> > > is)?
> >
> > Um, no, other than to perhaps make a point of periodically summarizing
> > discussion points from the multiple lists so people not subscribed to
> > all lists can keep track.
>
> That makes sense, and maybe we should even start suggesting that as an
> obligation of any one that starts a cross posted thread. (Not sure how far
> we'd get, but I might start out any reply with "Thanks for cross posting
> that, please keep us informed of any interesting posts from the other
> list(s). :wink:
>
> Of course, if I start the thread, I may not be so eager to keep both lists up
> to date. Maybe a summary (oh, that's what you said ;-), at strategic times,
> one being when I feel my question is answered or whatever. (And if
> discussion continues or is going off on some tangent(s), maybe mention that.)
>
> regards,
> Randy Kramer
>
>

--
Cheers,
  zimba

http://zimba.oree.ch

--
Brock Weaver
[OBC]Technique

That also makes sense, probably even more sense!

ATM, I can think of only one other reason to cross post--when making an
announcement that is relevant to more than one list (like I recently
mentioned to both the lvlug and the sig (both at the linuxlink) about an
upcoming Linux course (free and online, at
http://linuxbasics.org/course/start\)..

regards,
Randy Kramer

···

On Thursday 25 August 2005 04:19 pm, zimba-tm wrote:

What I suggest is that people don't cross-post, but rather choose one
list that has the bigger chance to answer the question they have. If
the thread dies with no satisfying answer, then start a new one on the
second ML with a summary of the preceding discussion included.

> Thanks! (I use nedit, works great!)

ah, i thought you were looking for a cross-platform ide...

Ahh, sorry for the confusion, that was the OP (somewhere back in the dawn of
prehistory?)

(But, (as I mentioned previously) nedit does work on Windows and Mac as long
as X is available.

regards,
Randy Kramer

···

On Friday 26 August 2005 02:50 pm, tony summerfelt wrote:

Randy Kramer wrote on 8/26/2005 1:45 PM:

i've just jumped through a couple of hoops trying nedit for windows.
imho, not worth it to write ruby code with on windows...

Hi, Lothar, thanks for the response!

---< snipping good stuff liberally (throughout) >--

I had started to look at Scintella just a few days ago. I'll look for the
Delphi component and aeditor.

> * which can be integrated with recorded keyboard macros (it is
quite RK> common for me to start writing a macro by recording keystrokes.
That macro RK> may not have all the features I need (especially
conditionals) so I am used RK> to taking that macro and adding code from
the macro language so that it can RK> do everything I need)

Nice idea. AFAIK even XEmacs don't support it (at least without shooting
yourself in your foot).

Just for your information, both nedit and Microsoft Word (what I call 97 (for
Windows) and some earlier versions, and I assume also the later versions) do
this.

> * folding based on custom "sentinels" or features of the file (I
have RK> nedit macros that fold on any TWiki level heading (i.e., on "---+
" through RK> "---++++++ ")

I could implement something like this but it's the first time i
hear about it. Everybody wants it either on syntax elements
(implemented in Arachno) or on indentation.

I do it with macros in nedit, which is fine.

> * able to export selected records to another application for
further RK> processing (sort of like an abiltiy to sort, although the first
external RK> application will not return any results, the record is just
specially RK> formatted and displayed for the user) (so, in fact, unlike
the similar RK> capability in nedit, I need an option that either deletes
the text sent to RK> the other application for replacement by what is sent
back from that RK> application, or that does not delete that text (as
nothing will be sent back RK> from that application)

This feature will be in the next release (expected end of next week).
You can even catch the exit code and decide on this if you want to replace
the selected text range with the external application or not.

Wonderful!

> * written in a language that I can grok so if necessary I can
customize RK> it still further (and with a license that lets me do that)

Okay, thats a knock out criterium for me. I will not publish my eiffel
code, but i think if you have a good complete macro language it is not
necessary. When i see what you can do with VisualSlick Edit then you
don't really need it. And if the wanted features are so different from the
current state of the editor, i doubt that you want to hack inside a
300000 lines project.

You're right, I don't want to mess around inside a 300,000 line project, and
with a good macro language it shouldn't be necessary. BTW, the only two
reasons I need/want to hack inside nedit are to:
   * actually hide text when folded
   * give an option to delete or not delete text sent to an external
application

It sounds like Arachno will have both of those.

So i think Arachno will be (at the current development level) not
your editor, but maybe you like to try it out end of 2006. I think
until then i implemented the points on your requirement list.

Yes, I would. Will it be available as a component that I could incorporate in
another project?

So i continue to do what i did in the past: look what i would like to see
in a Ruby IDE and implement this first.

I think that's a good way to do it (at least until you're programming
something for which you have no experience).

Thanks again for the response! I look forward to looking more closely at
Arachno sometime near the end of 2006.

regards,
Randy Kramer

···

On Saturday 27 August 2005 09:30 pm, Lothar Scholz wrote:

#: Lothar Scholz changed the world a bit at a time by saying on 8/28/2005 3:30 AM :#

Hello Randy,
> * folding based on custom "sentinels" or features of the file (I have
> nedit macros that fold on any TWiki level heading (i.e., on "---+ " through
> "---++++++ ")

I could implement something like this but it's the first time i
hear about it. Everybody wants it either on syntax elements
(implemented in Arachno) or on indentation.

I have seen this request for years in Java environment, but the interesting thing is that I never saw it used and after requesting it I never heard about anybody using it.

  > At the moment i see that there is heavy feature demand from two different

camps, the one that want to add more ruby specific features (mostly
this are the java converting guys) and the other people that want a general
purpose editor with some ruby support (long time programmers of
scripting languages and xemacs/vi users)

So i continue to do what i did in the past: look what i would like to see in
a Ruby IDE and implement this first. Thats the way every successful Shareware
application was developed in the past.

I definitely see the business idea here, but I would like to add some personal remarks:

1/ imo competing with all editors features doesn't seem to be doable in a long run. Moreover I don't think that the developers that just fire vim/xemacs to do a few hundred line scripts once in a day will fire instead Arachno.

2/ after having a decent editor (and currently I find Arachno editor good enough) I think that the Ruby related features will bring the users. I hope and my estimations are that after the point where Ruby gets more accepted (and a good development environment can help this a lot) there will be a real need for a good IDE. All development languages used at large scale where backed by such tools. I heard about users asking for vim/xemacs functionality in say Visual Studio or Eclipse or IntelliJ, but the majority doesn't need that.

3/ in Java world there were/are lots of IDEs. When open source counter-attacked many of them where put out of business, because they haven't focused on what the need was. Currently I can count on the fingers of a single hand the commercial solution that remained on the market. And they succeeded on doing this because they understood what the target is. They succeeded in creating 'their' users.

4/ there are lots of functionality other than a 'perfect' editor the companies are looking for before deciding to adopt an IDE (source control integration, automatic integration with tools, ease of usage and proficiency).

Here is a nowadays story about this:
my team decided to do a few-days investigation about Ruby development. we needed a small wiki application and we decided that this would be a nice moment to evaluate how a Ruby project maintainance/hacking can take place. In the first day, 2 of the guys stepped out saying that they lost all the day moving around in circles and finally doing nothing (the absolute newbies). The rest of 3 have spent almost 1.5 days to figure out what is happening in the solution we have chosen (almost random choice): we needed debuggers, tracing and lots of pure text searches to understand. Within a half a day we have finished what we have planned to do. The after job meeting concluded that:
- we've been highly unproductive because we lacked the ways to understand the existing code (so maintaining a project in a long term is very difficult)
- we've lost important time by switching around different tools we needed (source control integration was the most important missing point)
- once we have understood what we have to do, we did it quickly (this is what everybody on this list is saying too ;-).

However, if I would go to the upper management and have to choose a Ruby solution for a long term project I will not do it: they will refuse it right from the start because of the first 2 points.

I know this little story may be able to start again flames, but it was not intended to do this. I have just explained what is happening in a medium sized it shop. Sure, we the developers may be the first to blame cause probably we don't have the correct mindset. But this is why we are needing tools.

thanks for bearing with me for this long post,
:alex |.::the_mindstorm::.|

[snip]

Sorry, AEditor is completely dead for this moment (I have converted to
the dark side, now using a commercial editor which currently suits my needs).
AEditor never really got encapsulated into a reusable widget.
This idea still facinates me..

···

On 8/28/05, Lothar Scholz <mailinglists@scriptolutions.com> wrote:

> * I'm looking for an editing component (widget, control, ...) for a project
> I'd like to do

I think there is not very much except Scintilla.
I've seen a Delphi component some time ago written for a php editor,
but it wasn't under heavy development and missed a lot of features.
Don't know if Simon found some time to work on this "aeditor"
component, which is 100% ruby (I'm not sure if this is a good idea,
because hard to get it snappy).

--
Simon Strandgaard

Lothar Scholz:

I've seen a Delphi component some time ago written for a php editor,
but it wasn't under heavy development and missed a lot of features.

    You may be referring to SynEdit although that project forked IIRC

    I maintain a list of editing components towards the bottom of
http://scintilla.sourceforge.net/ScintillaRelated.html

    Neil

i think i'm in the camp of more ruby specfic features. i registered it
as a ruby ide. there would be too many changes (and/or features) for
me to use it as a general editor.

back in the dos days i used to use the ide's for each compiler i was
working with (turbo basic, quickbasic, turbo pascal,turbo C) i jumped
around them easily enough.

i prefer an ide geared towards a specific language. i'd probably be
using arachno perl had the dev work continued (i use komodo for that now)

···

Lothar Scholz wrote on 8/27/2005 9:30 PM:

At the moment i see that there is heavy feature demand from two different
camps, the one that want to add more ruby specific features (mostly
this are the java converting guys)

--
http://home.cogeco.ca/~tsummerfelt1
telnet://ventedspleen.dyndns.org

[snip]

Zimba, to which list would you have posted this particular topic?

I would have posted on the rails ML first.
Both ML are about ruby, so there are people on both that uses ruby
IDEs. But rails may have specific extensions that we don't know here.

···

On 25/08/05, Brock Weaver <brockweaver@gmail.com> wrote:

--
Cheers,
  zimba

http://zimba.oree.ch

What can I say? :wink: I use it everyday (in nedit with my macros), and expect
to have it as a feature in the project I'd like to do.

regards,
Randy Kramer

···

On Sunday 28 August 2005 04:12 am, Alexandru Popescu wrote:

#: Lothar Scholz changed the world a bit at a time by saying on 8/28/2005
> > * folding based on custom "sentinels" or features of the file
> (I have RK> nedit macros that fold on any TWiki level heading (i.e., on
> "---+ " through RK> "---++++++ ")
I have seen this request for years in Java environment, but the interesting
thing is that I never saw it used and after requesting it I never heard
about anybody using it.

Simon,

Thanks for the information (won't have to try chasing it down :wink:

regards,
Randy Kramer

···

On Sunday 28 August 2005 12:03 pm, Simon Strandgaard wrote:

Sorry, AEditor is completely dead for this moment (I have converted to
the dark side, now using a commercial editor which currently suits my
needs). AEditor never really got encapsulated into a reusable widget.
This idea still facinates me..

Hello tony,

i think i'm in the camp of more ruby specfic features. i registered it
as a ruby ide. there would be too many changes (and/or features) for
me to use it as a general editor.

Yes, i'm not trying to do a general editor.
But there is a set of files that every ruby programmer might need:

   - datafiles: XML, YAML, Ini
   - source code: Ruby, ERuby
   - extensions: C, C++
   - webfiles: HTML, XHTML, CSS, Javascript
   - database: SQL

I will not try to support more then these basic file types.

···

back in the dos days i used to use the ide's for each compiler i was
working with (turbo basic, quickbasic, turbo pascal,turbo C) i jumped
around them easily enough.

--
Best regards, emailto: scholz at scriptolutions dot com
Lothar Scholz http://www.ruby-ide.com
CTO Scriptolutions Ruby, PHP, Python IDE 's

Randy, how does folding work in nedit? Are there some published macros
somewhere?

See NmTWikiFold < Wikilearn < TWiki, I think it's all
explained fairly well there. (And published there as well.)

I'm curious where the folded text goes? Long lines?

Exactly. The macros replace selected \n's with \f's. The lines ending in \f
don't wrap, and thus extend far off to the right. (They also switch the
nedit wrap mode from continuous to none when folded (and back to continuous
when not folded.)

If nedit had a good means to hide text, I'd use that to hide the text instead
of folding it.

As mentioned on the WikiLearn page, I got the idea for the general approach
(\f in place of \n) from earlier macros created by others.

regards,
Randy Kramer

···

On Sunday 28 August 2005 06:31 pm, Joel VanderWerf wrote:

i'd find xml and html specific features handy. as it is now i do all
that with another editor, but i'd use arachno-ruby instead if they had
specific features for these...

···

Lothar Scholz wrote on 8/29/2005 10:58 AM: > But there is a set of files that every ruby programmer might need:

   - datafiles: XML, YAML, Ini
   - webfiles: HTML, XHTML, CSS, Javascript

--
http://home.cogeco.ca/~tsummerfelt1
telnet://ventedspleen.dyndns.org