[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Scriptable text editor with Ruby?

Francis Rammeloo

1/3/2007 4:11:00 PM

Hi all!

Vim and emacs are text editor that can be scripted using internal
script languages. I'm thinking of writing a platform independent text
editor myself that uses the ruby language for executing scripts. The
host application would be written in C++ (+Qt) and it would somehow be
able to interact with ruby.

I think there are basically two ways of implementing this interaction:
- using IPC
- command line interaction (host executes the ruby script with
parameters and catches the output)

IPC is the most powerful I think, but then again I have various options
to achieve this communication:
- TCP
- XmlRpc
- shared memory

I'm very new to the concept of inter-process-communication and I would
greatly appreciate your insights on how I would best proceed to achieve
this interaction.

Or maybe there is a more obvious and straightforward approach that I
overlooked?

Best regards,
Francis

37 Answers

Michael P. Soulier

1/3/2007 4:44:00 PM

0

On 1/3/07, Dolazy <francis.rammeloo@gmail.com> wrote:
> Hi all!
>
> Vim and emacs are text editor that can be scripted using internal
> script languages. I'm thinking of writing a platform independent text
> editor myself that uses the ruby language for executing scripts. The
> host application would be written in C++ (+Qt) and it would somehow be
> able to interact with ruby.

Vim runs everywhere. Are you sure that this is necessary?

Mike
--
Michael P. Soulier <msoulier@digitaltorque.ca>
"Any intelligent fool can make things bigger and more complex... It takes a
touch of genius - and a lot of courage to move in the opposite direction."
--Albert Einstein

Francis Rammeloo

1/3/2007 4:58:00 PM

0


Michael P. Soulier schreef:

> Vim runs everywhere. Are you sure that this is necessary?
>
> Mike

Are you sure Vim was necessary? Emacs runs everywhere... :p

Gregory Brown

1/3/2007 5:18:00 PM

0

On 1/3/07, Dolazy <francis.rammeloo@gmail.com> wrote:
>
> Michael P. Soulier schreef:
>
> > Vim runs everywhere. Are you sure that this is necessary?
> >
> > Mike
>
> Are you sure Vim was necessary? Emacs runs everywhere... :p

but vi *must* run everywhere (According to POSIX). :)

To the OP:

Both editors run everywhere and in my opinion, if you're not planning
on building a cross platform TextMate clone that is at least 95% as
good, you won't pry anyone from vim, emacs, *or* TextMate.

But if you're looking to try something different, or build the perfect
editor for you, have fun. I know I'd at least play around with yet
another Ruby enabled editor. (Though QT is yucky)

James Britt

1/3/2007 5:28:00 PM

0

Dolazy wrote:
> Hi all!
>
> Vim and emacs are text editor that can be scripted using internal
> script languages. I'm thinking of writing a platform independent text
> editor myself that uses the ruby language for executing scripts.

Vim can do that now. Build it with Ruby support and you can drive the
editor with Ruby.


--
James Britt

"I was born not knowing and have had only a little
time to change that here and there."
- Richard P. Feynman

Francis Rammeloo

1/3/2007 5:28:00 PM

0


Gregory Brown schreef:

> On 1/3/07, Dolazy <francis.rammeloo@gmail.com> wrote:
> >
> > Michael P. Soulier schreef:
> >
> > > Vim runs everywhere. Are you sure that this is necessary?
> > >
> > > Mike
> >
> > Are you sure Vim was necessary? Emacs runs everywhere... :p
>
> but vi *must* run everywhere (According to POSIX). :)
>
> To the OP:
>
> Both editors run everywhere and in my opinion, if you're not planning
> on building a cross platform TextMate clone that is at least 95% as
> good, you won't pry anyone from vim, emacs, *or* TextMate.
>
> But if you're looking to try something different, or build the perfect
> editor for you, have fun. I know I'd at least play around with yet
> another Ruby enabled editor. (Though QT is yucky)

Thanks :-)

This is really a pet project and I develop it in the first place to
deal with some of my specific needs (gdb integration). And also because
I want to learn Qt.

Btw I use Vim as primary editor.

Francis Rammeloo

1/3/2007 5:52:00 PM

0


> Embed the Ruby interpreter in the text editor itself? Then just make certain
> functions available to Ruby and script away.
>
> Jason

That would be one of those obvious approaches that I couldn't think of
myself.. Thanks!


M. Edward (Ed) Borasky

1/3/2007 5:54:00 PM

0

Dolazy wrote:
> Hi all!
>
> Vim and emacs are text editor that can be scripted using internal
> script languages. I'm thinking of writing a platform independent text
> editor myself that uses the ruby language for executing scripts. The
> host application would be written in C++ (+Qt) and it would somehow be
> able to interact with ruby.
>
Well, given QtRuby, you probably don't really need C++ at all -- you
could do it all in Ruby. But I'm not sure what the most recent status of
QtRuby is, and there is always the licensing gotcha -- you have to use
Qt 4 for open source Windows projects. If you use another GUI toolkit,
there are a number with Ruby bindings. For that matter, most of them
have some kind of text editor widget built in, which makes life even easier.
> I think there are basically two ways of implementing this interaction:
> - using IPC
> - command line interaction (host executes the ruby script with
> parameters and catches the output)
>
> IPC is the most powerful I think, but then again I have various options
> to achieve this communication:
> - TCP
> - XmlRpc
> - shared memory
>
> I'm very new to the concept of inter-process-communication and I would
> greatly appreciate your insights on how I would best proceed to achieve
> this interaction.
>
> Or maybe there is a more obvious and straightforward approach that I
> overlooked?
>
Two comments:

1. As a number of folks have pointed out, "vim" has an excellent Ruby
scripting facility already.
2. Rather than delving into issues of low-level implementation,
interprocess communication vs. shelling out to a command like vs.
whatever, I'd recommend a more agile and pragmatic approach. Pick a
toolkit, find a Windows user, a Mac user and a Linux user, set up a
project on RubyForge and start building the thing!


--
M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.blo...

If God had meant for carrots to be eaten cooked, He would have given rabbits fire.


Simon Strandgaard

1/3/2007 7:12:00 PM

0

On 1/3/07, Dolazy <francis.rammeloo@gmail.com> wrote:
[snip stuff about ruby/c++]
> Or maybe there is a more obvious and straightforward approach that I
> overlooked?

have you considered writing the entire editor in ruby and
then use ruby qt.. so you don't use any c++?

Ruby is good at string manipulation, so its possible
to do the entire syntax coloring in ruby. I think
this task is pretty big in c++.

--
Simon Strandgaard
http://opc...

Thomas Mueller

1/3/2007 10:16:00 PM

0

Hi,

You might want to have a look at Java 6. I have just installed that
yesterday and haven't played around with it at all yet, but from what
I read on the website it's integration with scripting languages might
make it relatively easy to include Ruby scripting in your text editor.

I realise there would be quite a few disadvantages to this approach
(need the runtime, need a brand new runtime, cannot code it in
Ruby...) but it might be worth looking into this.

Thomas


2007/1/4, Simon Strandgaard <neoneye@gmail.com>:
> On 1/3/07, Dolazy <francis.rammeloo@gmail.com> wrote:
> [snip stuff about ruby/c++]
> > Or maybe there is a more obvious and straightforward approach that I
> > overlooked?
>
> have you considered writing the entire editor in ruby and
> then use ruby qt.. so you don't use any c++?
>
> Ruby is good at string manipulation, so its possible
> to do the entire syntax coloring in ruby. I think
> this task is pretty big in c++.
>
> --
> Simon Strandgaard
> http://opc...
>
>

Vincent Fourmond

1/3/2007 10:55:00 PM

0

M. Edward (Ed) Borasky wrote:
> Dolazy wrote:
>> Hi all!
>>
>> Vim and emacs are text editor that can be scripted using internal
>> script languages. I'm thinking of writing a platform independent text
>> editor myself that uses the ruby language for executing scripts. The
>> host application would be written in C++ (+Qt) and it would somehow be
>> able to interact with ruby.
>>
> Well, given QtRuby, you probably don't really need C++ at all -- you
> could do it all in Ruby.

I can only agree to that. For what I experience, Qt4 1.4.7 is pretty
stable, much more than its predecessors. But I think you'll need a bit
of practice with the C++ classes before coding direcly with Qt/Ruby.

Well, have fun !

Vince

--
Vincent Fourmond, PhD student
http://vincent.fourmon...