Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

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