IDE
[1/7] from: tim-johnsons:web at: 15-Jun-2006 10:09
* Brian Wisti <brian.wisti-gmail.com> [060615 09:14]: Hi Brian: For now why don't you
try the following: http://www.rebol.com/tools/rebol.el This *is* the original that I
hacked. the hacked version is finicky and a bit buggy, I've lived with it, but I am reluctant
to exhibit my shortcomings. :-) However: I'm rebuilding the mode from scratch, and I
hope to have that available by sometime next week. That will have asynchronous interpereter
communication plus a bunch of other goodies not available on the original. Special keymappings,
code templates, menu indexing of subroutines etc. 'til then, see what the original will
do for you. tim > On 6/15/06, Tim Johnson <tim-johnsons-web.com> wrote: > > > > > > >
> Been impressed by the NetBeans IDE lately, though... > > > > IDEs are important! >
> > > I've used the emacs rebol 'mode which I hacked to enable asynchronous > > running
of the rebol interpereter from within the editor. I also added > > many other features
to the original 'mode. Not too long ago, I used > > emacs to create an 'IDE' for newlisp.
> > > > I'm currently using what I now know about elisp to create an entirely > > new
editor mode for rebol in emacs/xemacs. > > > > I also write in python. If I were using
windows to code in python, I > > would use pythonwin. It is a very good example of how
a good > > IDE/editor can make up for a very much more verbose coding style than > >
rebol. > > > > tim > > -- > > Tim Johnson <tim-johnsons-web.com> > > http://www.alaska-internet-solutions.com
> > -- > > To unsubscribe from the list, just send an email to > > lists at rebol.com
with unsubscribe as the subject. > > > > > > Can you post your hacked version of rebol.el
somewhere? I've been > using Crimson Editor on windows, which is really nice, but not
nearly > as powerful as emacs. > > Kind Regards, > > Brian Wisti > http://coolnamehere.com/
> -- > To unsubscribe from the list, just send an email to > lists at rebol.com with
unsubscribe as the subject. -- Tim Johnson <tim-johnsons-web.com> http://www.alaska-internet-solutions.com
[2/7] from: massung::gmail::com at: 15-Jun-2006 13:19
I have been working on a REBOL editor in my spare time. Sadly, it's written
in MFC, but uses the Scintilla control for syntax highlighting. I've thought
about posting the code I have so far for people to play with and continue
(as my spare time is very limited).
Ideally, though, the editor would be written in REBOL and scriptable in
REBOL as well. Typically I have a console version of REBOL running along
with any editor I am using, because I like to type "help <func>", etc. But
since the console version can't be piped, it limits what's possible in an
IDE.
Jeff M.
--
massung-gmail.com
[3/7] from: karim::elfounas::easybraine::com at: 15-Jun-2006 22:46
Hello everybody.
This discussion interests me a lot because I also thought a lot about a
REBOL IDE. I even worked a bit on an analysis document about that but
written in French.
I'll try to explain the big picture here. I apologies for my poor English.
First, when talking about IDE, I'm not talking about an editor. An IDE
contains many more functionalities as compiling, projects management,
GUI interface building...
I think that creating a Rebol IDE is not copying other IDE. Each
language has his style of coding that implies a type of IDE. The good
questions are "What do we need when programming REBOL?" and "How to
obtain that?".
I think a REBOL IDE written in REBOL is an excellent advertising.
1) GENERAL CONCEPT: modular application
Of course, an IDE is an environement homogeneous that contains
development tools. Let's call them "modules". The more basic idea is a
kind of menu or an icon bar (as MS Office97 ugly bar) that launch
specific modules (editor, execution, encap,...). Each module of the
editor is independent and optional.
It allows:
* The core IDE is simply a glue between modules and the user.
* Any developer can build his own module and maybe propose it to the
community. I can even sell it.
* Easy evolution of the IDE.
2) LET'S GO DEEPER: not just a module launcher
Accessing a functionality with a single click is powerful but is a quite
limited. Example, the "Debugging" tools could be launch in many ways :
* Simply execute the current script
* Execute the script and stop to the first breakpoint
* Execute next line
* ...
Notice that actions are done on specific objects and may needs specific
parameters: execute this file; search a word in files of this directory...
* Each module must have a list of possible action.
* An action may need some parameters (filename of the current
script,...)
This has an implication: the module must declare to the core IDE the
available actions, their parameters and on which king of objects they
apply.
Practically, the IDE must propose only the possible action. If no
script selected, no needs to edit something.
3) What exactly is a module ?
All these modules can be written in Rebol but it's convenient to access
other things than rebol scripts. If your favourite editor is Emacs, you
need a button (or a menu item or...) that launch Emacs with the current
filename as parameter.
Otherwise, sometimes it's useful to write directly his own new action.
By example a button to delete a specific log file. As developer, I want
to just clic on "Add new action" and write in a small form the action
name "Erase the log" and the corresponding rebol code ( delete
%/c/temp/error.log)
I think there are 3 main kind of modules :
* simple rebol code (typically one liners)
* module written in Rebol
* external software
4) What kind of objects can be manipulated by the IDE ?
Usually, the first use of the IDE is manipulating code which is stored
in files (ie rebol scripts). But it can be other kinds of text files
(xml, makedoc,...) and even binary files (images, sounds,...)
All these files are linked together because they are all parts of the
same project.
The IDE help USER to manipulate FILES of a PROJECT.
The project can be simply a list of files but it can also be a hierarchy
of files or directories corresponding to physical directory on hard
drive. But it's convenient to order them in a mode logical hierarchy
sometimes completely different than directories on disk. The user must
be able to add or remove files form the project.
I suppose that the IDE must contain a project browser or at least a
file browser.
It can be obvious but I think it's important to make the difference
with a simple text editor. With an IDE, I manage a project, not simply
files.
We can already visualize the IDE : An icon bar + a file/directory
browser. When a click on a file, only some icons are showed as active
(other are greyed)
5) How a module works ?
A module can be a simple rebol script but structured in a specific way
and that must contains specifics things. The IDE, analyse it and display
the icons corresponding to actions of the module. These actions can be
rebol functions.
OK but... when I click on an icon, is the module action executed in the
same Rebol session?
That's important because if the script is executed by the same rebol
process:
* The IDE freeze during action execution
* If the module crash, all the IDE crash also. I don't think about
usual rebol exception but about memory overflow or infinite loop,...
It seems more interesting to launch the module in another rebol session
if it's not a very simple thing.
OK. It implies that a module can be split in two parts.
* An interface sub-module, integrated into IDE at runtime.
* An execution sub-module, executed into another Rebol process
This is not so simple because sometimes we want avoid simultaneous
multiple executions of an action ("encap" a script).
More complicated, the module has to send informations to IDE.
Example : I'm writing code inside the "Code editor" module and I want
specific help about a rebol keyword. I just select it and click on
rebol dictionary
button which is another module.
The "Editor" doesn't know about other modules. It just know the IDE.
You understand that the process is more complicated:
* The "Dictionnary" module asks to IDE for a keyword
* The IDE asks to "Editor" module for the current selected word.
Practically the modules must be able to communicate and the IDE has to
transmit messages.
It implies a bidirectional communication between IDE and a module
It implies a communication protocol.
With the lack of direct interprocess communication with Rebol, I think
network protocol is maybe the best solution. Maybe, LNS (aka
rebol/services) and/or beer protocol are good solutions. I don't know.
I already think about tons of modules : Text editor, debugger, rebol
dictionary, anamonitor, multi file search/replace engine, versioning,
CVS sync, RAMBO search, makedoc, image transformations, vector graphics
editor wich generate draw dialect scripts, rebol.org search engine,
database browser,...
Some remarks:
* I spoke about modules but it doesn't mean Rebol 3.0 modules as
discussed on Rebol 3.0 Front Line. Maybe this technology is useful
for an IDE.
* What I described is not Rebol Desktop (viewtop) but the interface
and world-wide-reb file syntax can be a good starting point.
* I hope that this message will be useful and I still apologies for
my bad English
--
Karim EL FOUNAS
EasyBraine SA
Campagne des Rites, 8 - 1421 Ophain Bois-Seigneur-Isaac
Tél : +32 2 387 32 34
Mobile : +32 495 57 32 34
Email : karim.elfounas-easybraine.com
[4/7] from: tim-johnsons::web::com at: 15-Jun-2006 17:08
* Karim El Founas <karim.elfounas-easybraine.com> [060615 12:51]:
> Hello everybody.
>
Hello Karim:
> This discussion interests me a lot because I also thought a lot about a
> REBOL IDE. I even worked a bit on an analysis document about that but
> written in French.
>
> I'll try to explain the big picture here. I apologies for my poor English.
>
<grin> Your english is quite clear, and *way* better than my french.
I'm going to wear two hats here: The first hat is the pragmatic one,
the second is the idealistic one.
> First, when talking about IDE, I'm not talking about an editor. An IDE
> contains many more functionalities as compiling, projects management,
> GUI interface building...
Pragmatic hat:
--------------
To clear up a misunderstanding among many: Emacs/Xemacs are not
editors. They are full-fledged development environments for the elisp
programming language. Which was developend by Richard Stallman and is
based on the lisp style of parenthesized syntax.
Everything that you mention here can by done with emacs.
In fact elisp is a fully mature programming language, but it is
rather archaic in terms of scopes and contexts. Developing an editor
is a very large task.
Idealistic hat:
--------------
I sure as hell would prefer to be customizing my development
environment in rebol rather than elisp, so I hope someone builds an
editor as flexible and customizable as emacs using rebol.
*But* I want keystrokes! Must have keystrokes. Much more preferable
than menus, but they are good too.
Example: Control-C f ;; select function
Control-C x ;; bring interpreter into focus, execute
;; function in interpreter
Example: Control-C h ;; submit current word to interpreter for
;; 'help documentation
;; ................ and many, many more!
I 'love' the keyboard.
tim
> I think that creating a Rebol IDE is not copying other IDE. Each
> language has his style of coding that implies a type of IDE. The good
<<quoted lines omitted: 120>>
> To unsubscribe from the list, just send an email to
> lists at rebol.com with unsubscribe as the subject.
--
Tim Johnson <tim-johnsons-web.com>
http://www.alaska-internet-solutions.com
[5/7] from: gabriele::colellachiara::com at: 16-Jun-2006 12:08
Hi Jeff,
On Thursday, June 15, 2006, 8:19:47 PM, you wrote:
JM> with any editor I am using, because I like to type "help <func>", etc. But
JM> since the console version can't be piped, it limits what's possible in an
JM> IDE.
Who says that? :-)
Anyone remembers the editor by Elan Goldman? The trick to do that
is easy. Check my broadcast-console example for a hint. ;)
Regards,
Gabriele.
--
Gabriele Santilli <gabriele-rebol.com> --- http://www.rebol.com/
Colella Chiara software division --- http://www.colellachiara.com/
[6/7] from: massung::gmail::com at: 16-Jun-2006 8:57
Gabriele,
Got a quick link for me? I'm excited once again! :-)
Jeff M.
--
massung-gmail.com
On 6/16/06, Gabriele Santilli <gabriele-colellachiara.com> wrote:
[7/7] from: gabriele::colellachiara::com at: 17-Jun-2006 11:22
Hi Jeff,
On Friday, June 16, 2006, 3:57:09 PM, you wrote:
JM> Got a quick link for me? I'm excited once again! :-)
http://www.colellachiara.com/soft/Misc/broadcast-console.r
Regards,
Gabriele.
--
Gabriele Santilli <gabriele-rebol.com> --- http://www.rebol.com/
Colella Chiara software division --- http://www.colellachiara.com/
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted