[Openroad-users] OpenROAD 2006 : New Workbench GUI Rant.
Ian.Utley at luminary.co.uk
Ian.Utley at luminary.co.uk
Fri Mar 16 12:10:39 EST 2007
Regarding 'Intellisense'. I personally don't use the OpenROAD editor as it is lacking a lot of 'power user' features available in modern editors. However with a sufficiently programmable external editor you can create your own version of intellisense. The key idea is to write metadata about OpenROAD components into a flat file, and use that file as a reference.
This can allow some cool features. For instance the editor I use (a vi clone :-)) provides:
Full code completion: - Expansion of method names, variable names, any component name, frame fields, system classes etc. With information about datatypes and remarks also displayed
Code Navigation: - Double-clicking on a method name or variable opens up another window showing the source code for that component at that particular method. This is a readonly extract from the OpenROAD database showing the script for the corresponding component.
How to implement intellisense in your editor.
=============================================
Your editor must have a macro language allowing you to invoke external programs and add words to a completion list from which the user can select a word. Most modern editors allow this. So the key is to work out a suitable list of words to add to the list.
All intellisense metadata should be stored in a tag file format, I use the ctags convention [ http://en.wikipedia.org/wiki/Ctags ]. A line in the metadata file holds information such as:
Name: A name that can be completed
Kind: The domain of the name e.g. is it an attribute, method, class, procedure, global variable, constant etc
Type: The type of the name. The datatype for an attribute, global variable or constant. The return type for a procedure, method or frame. The superclass for a class.
Field Type: The formfield that this name represents i.e. the type of FIELD(myvariable) is an optionfield
Source: The name of the entity the information is from. Frame name, class name, procedure name ...
Package: The OpenROAD application name where the information was derived from.
Remark: A description about the Name that is shown to the user from the completion list.
.... Other miscellaneous name:value pairs
A file for static data for the System Classes is needed. An example excerpt is below showing class relationships, methods and attributes.
object system.html //;# r type:void
ClassName system.html //;# a type:varchar class:object
ClientData system.html //;# a type:object class:object
InstanceIdentifier system.html //;# a type:integer class:object
InstanceReferences system.html //;# a type:integer class:object
Duplicate system.html //;# m type:object class:object
GetAttribute system.html //;# m type:integer class:object
IsA system.html //;# m type:integer class:object
SetAttribute system.html //;# m type:integer class:object
decimalobject system.html //;# r type:object
Value system.html //;# a type:decimal class:decimalobject
So to get the attributes and methods for a decimalobject, your macro code should retrieve the names from the lines containing class:decimalobject, check to see if decimalobject has a superclass and if so, get the names from the lines containing class:<superclass>; in this case object. As there are no lines with class:void the list generation stops after object.
Ideally you want a database specific file for each database a developer may be working against. This file contains a list of all global variables, procedures, classes etc. Basically - any information available from enquiring against the system catalog table ii_entities and ii_components. This file can be updated incrementally by using the alter_date of the entity table for performance.
For information which is unavailable from the db file,system file and currently edited file (procedure parameters, class attribute and methods and frame field variables) the editor invokes an OpenROAD image passing the development database and component name as flags. By using OpenROADs reflection capability, a dynamic tag listing as above is created by the OpenROAD image connecting to the passed in database; working out the application containing the component name and then retrieving the component source by the use of FetchComponent. Based upon the type of the component framesource or classsource it writes a tagfile to the filesystem. The editor then reads this file and adds the new information to its metadata. This image also updates the db file information at the same time as this is very quick. The same image can also be used to extract the source code for a component to provide the code navigation feature mentioned above.
One issue is that opening scripts in an external editors uses temporary filenames, so you can't complete CurFrame and CurObject, however if you use standard code headers the editor can work out the current component name for an edited script by retrieving it from the comment headers. For other expressions, the editor should look at the current script to work out the type for variables or parameters declared within the current script then invoke the OpenROAD image using the corresponding datatype. Typically, you will be developing against a single database, so that can be stored in an environment variable and passed to the image.
I also use this method to provide table name and column completion within ISQL.
Hopefully this gives an idea on how to get intellisense working in your favorite editor.
Ian Utley
Luminary Solutions
Tel: +44 (0)870 757 40 90
Email: Ian.Utley at luminary.co.uk
For more information on Luminary go to http://www.luminary.co.uk
Luminary Solutions Limited Registered in England No 4854134 VAT Reg No. 829 3166 13
Registered Office: 5 Pavilion Business Park, Royds Hall Road, Leeds LS12 6AJ
> -----Original Message-----
> From: openroad-users-bounces at peerlessit.com [mailto:openroad-users-
> bounces at peerlessit.com] On Behalf Of Fred Stelter
> Sent: 14 March 2007 17:08
> To: International OpenROAD Users
> Subject: Re: [Openroad-users] OpenROAD 2006 : New Workbench GUI Rant.
>
> Hi
>
> I occassionally dialed into weekly the beta status calls for OR2006. Jim
> Batten mentioned that intellisense would be added to a future release
> possibly one due out in August of this year. Their was some mention that
> the next release may be open sourced.
>
> They were very open to suggestions for improving the editor portion of the
> new
> ide. I came away from the calls with the impression that they are heading
> in
> the right direction. My guess is that they chose to concentrate on the
> workbench because it may have been the obvious place to start. This
> assumes
> that the component and script editors will be integrated into the
> workbench
> ide to provide a look and feel more similar to the Netbeans IDE or Visual
> Studio 2005.
>
>
>
> On Wednesday 14 March 2007 11:12, Adrian Williamson wrote:
> > Hi Kim
> >
> > Yes a new editor would have been nice, one with Intellisense that works
> for
> > our own classes would have been even bettor.
> >
> > Don't worry about the negative bit, Ingres has to know what the mature
> > community thinks.
> >
> > Imagine someone using the new Workbench who hasn't worked with OpenROAD
> > before, it might put them off.
> >
> > Not good.
> >
> > Maybe Ingres could pay some third party to do a Intuition / Style audit
> on
> > the three different workbench styles that have appeared over the years,
> and
> > cherry pick the best bits.
> >
> > Call me old fashioned, but I thought the orginal Sapphire Editor with
> > cataolgue views was the most intuative to use, but it was the first I
> > learn't.
> >
> > Regards,
> >
> > Adrian
> >
> > -----Original Message-----
> > From: openroad-users-bounces at peerlessit.com
> > [mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Kim Ginnerup
> > Sent: 14 March 2007 15:39
> > To: International OpenROAD Users
> > Subject: Re: [Openroad-users] OpenROAD 2006 : New Workbench GUI Rant.
> >
> > I have used the new workbench for some time now.
> > At first I found it very difficult and I still get lost sometimes to
> find
> > what I want.
> > I'm not sure if the problems are because I'm used to the old one, or it
> > simply is because the new one is not intuitive enough.
> > The old one is not intuitive but with time you learn.
> > I think there are a lot of good things in the new workbench, but I also
> > think it has a long way to go before it works as you would expect.
> > 1. I am beginning to use right click a lot, and gets frustrated when the
> > options I expect to see is missing.
> > I miss import and New(Create)
> > 2. I do not like the one top toolbar fits everything.
> > I like self contained portlets with its own functions.
> > 3. I do not like the "everything can be done from here style" IDE's,
> like
> > Eclipse and Visual Studio and partly the new workbench. I guess most
> > projects that reach a certain size needs lots of commandline stuff to
> > automate build, packages, patches, ...
> > 4. I do not like for example that I have to open, change, save & close
> > application properties. I have just clicked on that tab that should be
> > enough. So select the tab do the changes leave the tab. I think the Open
> for
> > edit, edit, save or save&close is unnecessary. I like modeless frames
> Not
> > like this where you switch between edit and view. This is to much like
> old
> > VI style editing.
> > 5 A global toolbar is for global stuff. So why do I have a connect to
> > database button, when it only works in the connect tab.
> >
> > There are a lot of small nitty gritty details that should be looked at.
> > And this mail my come out a bit to the negative side. That is not my
> > intention. I think the new workbench is a step in the right direction,
> but
> > it is not there yet.
> >
> > Actually I would have liked to see a new Editor instead of a new
> workbench.
> >
> > Kim
> >
> > -----Oprindelig meddelelse-----
> > Fra: openroad-users-bounces at peerlessit.com
> > [mailto:openroad-users-bounces at peerlessit.com] På vegne af
> > gareth.2.edwards at bt.com
> > Sendt: 14. marts 2007 15:39
> > Til: openroad-users at peerlessit.com
> > Emne: Re: [Openroad-users] OpenROAD 2006 : New Workbench GUI Rant.
> >
> > I had a few problems with it too, so stuck with the classic view for
> now.
> >
> > It's on the back-burner, of, when I get time I'll have a quick play.
> > (along with plenty of other things, mClient, app server etc etc etc...)
> >
> >
> > Cheers,
> > Gareth Edwards
> >
> > BT Global Services
> > tel: +44 (0)131 345 4671
> > email: gareth.2.edwards at bt.com
> >
> > -----Original Message-----
> > From: openroad-users-bounces at peerlessit.com
> > [mailto:openroad-users-bounces at peerlessit.com] On Behalf Of Adrian
> > Williamson
> > Sent: Wednesday, March 14, 2007 1:45 PM
> > To: 'International OpenROAD Users'
> > Subject: [Openroad-users] OpenROAD 2006 : New Workbench GUI Rant.
> >
> > Hi,
> >
> > Are any of you using the new Workbench?
> >
> > Or have you stuck with the classic view?
> >
> > I've had a quick go this morning, and it's not floating my boat.
> >
> > To start with:
> >
> > Not really sure when I've connected to a new application database.
> > Cannot resize the development window.
> > Cannot get rid of the Component details subwindow.
> > Cannot set qep / printqry from the DBsession in the Query monitor
> facility
> > to make output appear in the trace window.
> > E_US09C4 Syntax error on line 1. Last symbol read was: 'set
> printqry'.
> > (Wed Mar 14 12:28:21 2007)
> > Cannot find the break on next control.
> >
> >
> > If anyone else has found some obvious annoyances and or solutions then
> > please post.
> >
> > If I get the debugger going then perhaps I can have a rant about the
> fact I
> > can't copy and paste variable names / content from the Watcher frame in
> the
> > debugger. (That's the case in classic mode anyway)
> >
> > Regards,
> >
> > Adrian
> >
> >
> > _______________________________________________
> > Openroad-users mailing list Openroad-users at peerlessit.com
> >
> > To unsubscribe please click on this link
> > mailto:openroad-users-unsubscribe at peerlessit.com&subject=unsubscribe
> >
> > To subscribe please click on this link
> > mailto:openroad-users-subscribe at peerlessit.com&subject=subscribe
> >
> >
> >
> > _______________________________________________
> > Openroad-users mailing list Openroad-users at peerlessit.com
> >
> > To unsubscribe please click on this link
> > mailto:openroad-users-unsubscribe at peerlessit.com&subject=unsubscribe
> >
> > To subscribe please click on this link
> > mailto:openroad-users-subscribe at peerlessit.com&subject=subscribe
> >
> > _______________________________________________
> > Openroad-users mailing list Openroad-users at peerlessit.com
> >
> > To unsubscribe please click on this link
> > mailto:openroad-users-unsubscribe at peerlessit.com&subject=unsubscribe
> >
> > To subscribe please click on this link
> > mailto:openroad-users-subscribe at peerlessit.com&subject=subscribe
> >
> >
> >
> > _______________________________________________
> > Openroad-users mailing list Openroad-users at peerlessit.com
> >
> > To unsubscribe please click on this link
> > mailto:openroad-users-unsubscribe at peerlessit.com&subject=unsubscribe
> >
> > To subscribe please click on this link
> > mailto:openroad-users-subscribe at peerlessit.com&subject=subscribe
> >
> > ______________________________________________________________________
> > This e-mail has been scanned by MCI Managed Email Content Service, using
> Skeptic(tm) technology powered by MessageLabs. For more information on
> MCI's
> Managed Email Content Service, visit http://www.mci.com.
> > ______________________________________________________________________
> >
>
> _______________________________________________
> Openroad-users mailing list Openroad-users at peerlessit.com
>
> To unsubscribe please click on this link
> mailto:openroad-users-unsubscribe at peerlessit.com&subject=unsubscribe
>
> To subscribe please click on this link
> mailto:openroad-users-subscribe at peerlessit.com&subject=subscribe
_______________________________________________
Openroad-users mailing list Openroad-users at peerlessit.com
To unsubscribe please click on this link
mailto:openroad-users-unsubscribe at peerlessit.com&subject=unsubscribe
To subscribe please click on this link
mailto:openroad-users-subscribe at peerlessit.com&subject=subscribe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 2#Mime.822
Type: application/octet-stream
Size: 17454 bytes
Desc: not available
Url : http://peerlessit.com/pipermail/openroad-users/attachments/20070316/7a8b4c9a/attachment-0001.obj
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: GWAVADAT.TXT
Url: http://peerlessit.com/pipermail/openroad-users/attachments/20070316/7a8b4c9a/attachment-0001.pl
More information about the Openroad-users
mailing list