What's your favorite missing editor feature?

Posted by aswindel on 09-Oct-2007 12:05

In doing a bunch of presentations at Exchange, Progress Technology World in Brussels and visiting various customers to discuss OpenEdge Architect adoption I have been hearing a common theme.

"I really like OpenEdge Architect - if only the editor did......." or, "My favorite editor has this feature I use all the time - can we have that in OpenEdge Architect"

We would love to hear from everyone what editor features you think are missing that you use frequently with your current favorite editor and consider basic functionality. Such feedback will help us prioritize future functionality to hopefully focus initially on things that will have the biggest impact on developer day to day productivity, as well as helping to remove barriers to adoption of OpenEdge Architect. If somebody suggests something you agree with - chime in with your approval to help support the suggestion with additional justification, use cases, etc.

So, for example, I keep hearing block editing is important...

TIA, Ant

All Replies

Posted by Admin on 09-Oct-2007 14:24

For a quick answer, please check: http://www.psdn.com/library/entry.jspa?entryID=1886

Syntax completion is by far the feature I miss the most. The sole ability to complete table and field names is - if it works - by far not enough. Well while adopting the complexity and grown nature of the ABL to the AST might make it hard to provide complete syntax completion for all ABL statements.

So at least syntax completion for OOABL classes, methods and properties including polymorphism for constructors and methods (yes, I want to see multiple combinations of paramters as in the Visual Studio) would be on the top of my wish list.

Mike

Posted by jankeir on 10-Oct-2007 02:05

For a quick answer, please check http://www.psdn.com/library/entry.jspa?entryID=1886

I agree with that!

As Mike already expressed his desire for better syntax completion I'm sure it will be taken care of and I can choose something else:

I really miss ++ to expand, so that when I type

iCounter++

it becomes

iCounter = iCounter +

Should be an easy thing to implement

Posted by kevin_saunders on 10-Oct-2007 02:48

For a quick answer, please check: http://www.psdn.com/library/entry.jspa?entryID=1886

I have to agree.. This is a fantastic tool and the features Sebastien has implemented would be a welcome addition to Architect..

And, yeah, block editing is really missed from the old P4GL Editor (V9+).

I also miss the CTRL-ALT-V multi clipboard functionality - such a useful tool, IMO..

Posted by Admin on 10-Oct-2007 15:08

I know, I already had my wish, but maybe somebody else would like to have this as well: Synchronization between the highlighted row in the text editor and the outline view. So, when I scroll through we source code of a file, the outline view reflects the current position as well.

Posted by davidkerkhofs3 on 10-Oct-2007 15:36

First let me say that doing new projects with the new language features is where OEA will take its place. My comments are more related to dealing with existing (V8-V9) projects.

Checking syntax in the Appbuilder was fairly easy: it only checked the syntax for the internal procedure or function working on.With Architect, “check syntax” checks the entire source: very handy for small programs, time consuming for big ones however.I'm not saying I don't like the fact that the source is entirely checked (it's by far less easy to save with unintended errors), but with some "old style" ABL it performs poorly.

Decent Preprocessor support is another feature missing. The AST isn't able to interpret these correctly for instance.

Function forward declaration needs to be done by hand in OEA.

More on the Architect level (not just the Editor): every project needs its own database connections: option to share a single prowin32.exe in the Editor could limit the database resources required in the workspace

David

Posted by aswindel on 09-Nov-2007 13:16

A few people have mentioned ABHack - does anybody have a summary of what that does that OpenEdge Architect does not do?

Thanks, Ant

Posted by Admin on 09-Nov-2007 14:16

Hi Anthony. I suggest you invite Sebastien Lacroix for a WebEx meeting. He was our guest at the German PUG meeting and everybody was impressed by his presentation!

ABHack offers syntax completion for

- DB Tables, Fields (in a much more intelligent way than OEA)

- Temp-Table fields

- Internal procedures names of Persistent Procedures / Super Procedures

- OOABL Methods and Properties

- Parameters to procedures, internal procedures, methodes, ...

- Widget Methods and Properties

- Tooltip query analyzer

...

Posted by Admin on 09-Nov-2007 14:53

... and ABHack stores all relevant information in a Progress DB for faster access/load time than the AST parser of OEA.

Posted by vjug on 13-Nov-2007 15:28

Well, OEA does allmost everything that ABHack does. But...

ABHack is proactive - it reacts quicker and offers last referenced buffer (and there is few other nice things about it). It just pops out, take a guess and offers me what I want to write. OEA auto-complete is not allways automatically triggered and offers me too many options. Also, sometimes it doesn't color the code accurately - DB field names are left black.

Second feature that I miss the most is single comment. Ok, single comment on blank lines is possible with macro, but I want to type // and expect an existing line to be surrounded with comment marks.

Also, TAB doesn't allways act as expected and it would be nice to have matching END automatically aligned with start of the block.

I'm not sure that I'm not missing somethhing with next two features. Maybe they are available, but I just don't get it:

First of them is drag'n'drop of code. It is possible in Eclipse Europa but I can't get the debugger running in this version. And the next version (OpenEdge 10.1C, at this time beta) is also based on Eclipse 3.2...

Last missing feature related directly to the editor is square select. I really got used to it in Procedure editor and it saves time when writing "big" assigns. Is there any 3rd party plugin that allows last two described features?

Posted by Admin on 20-Nov-2007 08:27

The use of the Tab key works quite differently. Yes you can specify if it inserts a tab or spaces and if so how many spaces. However, the appbuilder is intelligent enough to know if you are in position 2 and hit tab it only inserts 2 spaces (assuming a 4 char tab stop). In OEA tab key always inserts 4 spaces regardless of the current cursor position. For companies where there are standards on indenting, etc. for code readability this makes the use of the tab key quite inefficient.

Block editing with CTRL-B. In AB you could select a block of code and copy/cut paste, etc. I REALLY miss this feature which is so nice to flip the contents on the right side of an assign back to the left, etc.

As for the multi clipboard, there is an excellent eclipse PlugIn that i have been using for a couple of years that is simple to install and works much like the CTRL-ALT-V in AB.

-Carson

Posted by Peter Judge on 20-Nov-2007 14:17

The use of the Tab key works quite differently.

Yes you can specify if it inserts a tab or spaces

and if so how many spaces. However, the appbuilder

is intelligent enough to know if you are in position

2 and hit tab it only inserts 2 spaces (assuming a 4

char tab stop). In OEA tab key always inserts 4

spaces regardless of the current cursor position.

For companies where there are standards on

indenting, etc. for code readability this makes the

use of the tab key quite inefficient.

You can change the Tab key behaviour yourself: Windows/Preferences/OpenEdge Architect/Editor. You can use tabs or any number of spaces.

-- peter

Posted by Tim Kuehn on 20-Nov-2007 14:28

You can change the Tab key behaviour yourself:

Windows/Preferences/OpenEdge Architect/Editor. You

can use tabs or any number of spaces.

The problem isn't the number of tabs / spaces, but that the editor knows which column it's in and only inserts enough tabs/spaces to get to the next tab stop.

Posted by Peter Judge on 20-Nov-2007 14:46

The problem isn't the number of tabs / spaces, but

that the editor knows which column it's in and only

inserts enough tabs/spaces to get to the next tab

stop.

Isn't that just standard Tab behaviour? The first time you press tab it takes you to the next tab stop, and thereafter to each tab stop?

-- peter

Posted by Tim Kuehn on 20-Nov-2007 14:47

Isn't that just standard Tab behaviour? The first

time you press tab it takes you to the next tab stop,

and thereafter to each tab stop?

Yes, but what the author wrote was:

In OEA tab key always inserts 4 spaces regardless of the current cursor position.

According to this author, OEA puts in 4 spaces regardless of position.

Posted by Peter Judge on 20-Nov-2007 14:52

Yes, but what the author wrote was:

In OEA tab key always inserts 4 spaces regardless

of the current cursor position.

According to this author, OEA puts in 4 spaces

regardless of position.

I was just going to say that too, after re-reading the original :). I think I misunderstood what you were trying to say. And I agree that it should, if you press the tab key, do the proper tab behaviour (ie next tab stop).

-- peter

Posted by Thomas Mercer-Hursh on 02-Jan-2008 13:23

I've been writing some code for a change and using OEA I notice a number of things I miss from ED4W.

One is completion on just about anything ... buffer names, variable names, etc.

Another is different select modes - whole line, continuous from start position to end position across lines, and block. Block is a real biggy.

Another is a way to increase or decrease indent of selected lines.

Another is being able to define a "right margin" which is not enforced like it might be for text, but such that one can get a comment justified against that margin with a single keystroke.

Posted by kevin_saunders on 03-Jan-2008 02:57

Another is a way to increase or decrease indent of

selected lines.

Right-click and select 'Shift Right' or 'Shift Left'. Sadly there is no keyboard key combination, which would be nice.

Posted by Thomas Mercer-Hursh on 03-Jan-2008 11:01

Helpful, if awkward.

Posted by Thomas Mercer-Hursh on 07-Jan-2008 17:20

Anyone else for double click on a variable name to select the whole name instead of going back to where the variable is defined? Going back is cool, but should be a right click option.

Posted by Admin on 07-Jan-2008 17:47

I'll second that. Double-click on a run IP or function is good, but I haven't had a circumstance where I really wanted to go back to a variable definition. I always double click and find myself back at the definitions when I wanted to highlight the variable.

Posted by Admin on 09-Jan-2008 06:42

I'll third that

I find it really annoying that it goes back to the definition, it only does it the first time tho, if you scroll back to your code and doubleclick it again, it will highlight it.

I'd rather have it highlight it always, and have the jum pto definition as a rightclick option, just like in Visual Studio.

The syntax completion is a much missing feature as well, if I type bufHandle: I would expect a list with all possible methods and functions of the handle, would make programming in PROGRESS so much more enjoying (and a lot faster!)

Posted by Thomas Mercer-Hursh on 09-Jan-2008 11:25

Speaking of completion, one thing I would really like to see is that, when one types in run procedure, it creates the () and a list of arguments that one can overtype. I remember seeing this in an editor for C back in 1985 or so.

Posted by Admin on 09-Jan-2008 14:08

Just FYI - I am Beta testing 10.1C and there is a new option which will allow a double click to simply select the text as you mentioned. If you want to hyperlink to the definition you can hold down the CTRL key and the variable will be underlined with a single click taking you to the definition. This works for IP's, Functions, etc.

-Carson

Posted by Thomas Mercer-Hursh on 09-Jan-2008 14:21

Well, if they hadn't been so silly as to exclude me from the beta, I guess I'd know that already.

Posted by Thomas Mercer-Hursh on 09-Jan-2008 17:16

Intelligent completion. A counter example of which is typing a define buffer statement and having it prompt for field names when one types the period at the end of the statement since it then creates a . pattern.

Posted by Thomas Mercer-Hursh on 17-Jan-2008 12:23

A minor gripe ... not a new feature, but a change.

When one uses the dialog to create a new file from a template, TAB moves from field to field at the top, but in Description it creates a tab in the field. This means that one has to use the mouse to navigate to the next field.

Also, can't we think of something better than custom.p? "Create a new custom procedure file" sounds like one is adding some local code to an existing application, whereas I am creating the application from scratch.

Posted by Admin on 17-Jan-2008 13:55

Did we have proper keyword casing when typing chained widget references like

hBuffer:DATA-SOURCE:query

The first keyword (DATA-SOURCE) get's converted to upper case. The second one (query) remains lower case (at least it's colored right).

And while we're here: As soon as type

hBuffer:DATA-SOURCE:

It should not be too hard to suggest all methods and properties of a DATA-SOURCE widget handle...

Posted by Matt Baker on 17-Jan-2008 14:13

The fill-in for description/summary in the new file editor's is an editor not a fill in. It is correct behavior and is defined by the platform you are on (I assume Windows).

The action you expect is actually "next-field" which is assigned to ctrltab. If you use ctrltab all the time instead of tab you'll always get the next field instead of the change in behavior when focusing on editors. The reverse is the same which is "previous field" which is shift+tab which a lot of people are familiar with. These are the platform default keystrokes. For fill-ins, the platform default behavior on tab is reassigned to "next field". For editors it is used as a real tab.

Posted by Admin on 17-Jan-2008 14:19

Posted by Matt Baker on 17-Jan-2008 14:21

Not the last time I checked

The comment was really in reference to the keystrokes. On an alternative platform such as a Mac (guess work here), the keystrokes for next field and previous field might be different.

Posted by Thomas Mercer-Hursh on 17-Jan-2008 16:57

I just discovered that it is possible to define keystrokes for Shift Left and Shift Right. I used CtrlShift, (i.e., Ctrl. (i.e., Ctrl+>) for these respectively and selected Editing 4GL Source as the context. Works fine.

BTW, why is that 4GL source instead of ABL?

Posted by riverside on 19-Jan-2008 04:48

A few things I found on 10.1B03 :

• Already mentioned, but is it really necessary to have two different settings for tab settings (General and OEA) ?

• Quotes, brackets, curly braces doesn't work as in Java Editor ; in a Java editor, typing a quote displays two quotes and cursor is positioned between the two. But when typing the closing quote, it overwrites the closing one ; in Progress editor, typing the closing quote inserts a second one. So you have to use the right arrow to be positioned correctly.

• Already mentioned too, but double-clicking on a variable sending cursor to its definition is really annoying

• keyword casing is not done when typing a comma ; typing no-lock followed by a period is OK, but not no-lock followed by a comma.

And many other things on syntax highlight, but that's not the point of this thead !

Posted by Thomas Mercer-Hursh on 23-Jan-2008 18:35

Three other annoyances which I wish I could control.

I am currently writing code against the Enterprise Architect repository where they happen to have capitalized all the file and field names. I think this is ugly and I would much rather my code contain, for example, t_Connector than T_CONNECTOR. But, when I type a define buffer statement for one of these tables, the table name completion automatically gives me the casing of the dictionary, no matter what I type. Presumably, turning off file and field name completion eliminates the problem, but with a loss of functionality. Why not a switch for LC, UC, or leave as typed?

And, of course, once one defines a buffer, as one almost always should, then one loses the field name completion anyway.

And, when defining a buffer and one types the period at the end of the table name, it comes up with field completion and it takes extra keystrokes to keep it from filling in the first field.

Posted by dlauzon on 24-Jan-2008 08:30

Yes, there's always a time when I'm in a huge ugly procedure after doing a search, for example, and say to myself "Where am I??" and have to scroll many pages before finding the name of the procedure I'm in!

I would change the position in the Outline view to reflect the position of the cursor.

Posted by dlauzon on 24-Jan-2008 08:34

It would be helpful to have a way to fold a block using the end line of the block instead of just being able to do it on the first line - if there is already a way to do so, make it more visible. (old code tends to have huge code blocks and when you scroll a couple of screen up to find the first line of the block, you don't see the END line where you were so it's difficult to find the right first block line)

Posted by Thomas Mercer-Hursh on 24-Jan-2008 12:55

Another feature I like in ED4W is that there are quick buttons for bookmark current line in the current file and then moving forward and back from one bookmark to the next and for clearing all bookmarks. This makes it very easy, for example, to set a bookmark in the block of definitions for a method or procedure, write a bunch of code, and then when one needs to add a new variable, bookmark the current location, flip back to the definitions, add one, and flip back to the same location in the code. One then typically clears that book mark and continues writing.

If the button for return to last editing location could be pushed multiple times, that might work too.

Yes, I am familiar with the Eclipse bookmark facility, but that seems better for more elaborate, lasting marks. My interest here is in something very quick and temporary to flip back and forth to two places in the same file.

Posted by Thomas Mercer-Hursh on 26-Jan-2008 18:22

Another small detail found in ED4W, a user setable right margin which creates a pale line in the editor. Word wrap at the line is selectable by file type, but even without word wrap or automated comment alignment to the margin, it provides a visual reference to use in comment alignment.

Posted by Admin on 27-Jan-2008 01:38

Well that visual hint is available (they call it print margin)...

&Window -> &Perferences

General -> Editors -> Text Editors -> Show print margin, Print margin column

That creates a thin grey line at that column (80 by default).

Posted by Thomas Mercer-Hursh on 27-Jan-2008 11:43

I love it when I complain and there is a solution!

Now, about automatically aligning the comment ...

Posted by Matt Baker on 28-Jan-2008 07:55

Eclipse has positional navigation similar to a web browser. Uses altleft arrow and altright arrow. Also on the navigate menu. I use these a lot. I've never used book marks.

Also in the OEA ABL editor, you can use altshiftup and altshiftdown to navigate next/previous code members. This jumps between each method / procedure / variable / property...

Posted by Thomas Mercer-Hursh on 28-Jan-2008 11:33

The Alt-arrow thing doesn't get me a lot. Nor does moving by procedure. The use case triggering the remark is working on the StartElement procedure for a SAX handler, which is 750 lines long because the particular XML has everything as attributes, no node content. As I go to work on each tag, I periodically need to go back to the definitions for that procedure to add a new variable. So, I'd like a book mark at the end of the definitions and one on the place I am working.

Posted by Admin on 29-Jan-2008 01:49

While speaking of navigation in source code. Once thing that I miss from AppBuilder days is the ability to navigate to "Definitions" section and "main code" block.

This is especially an issue with AppBuilder generated Windows/Dialogs.

As the actual code elements do not need to be sorted by alphabet, jumping to the main block, by picking the (alphabetically) first procedure and scrolling up does not work. Same with definitions. In a Dialog for instance, the first show variable might be part of the AppBuilder maintained Controls Definitions section (an unbound fill-in or combo-box). Making navigation to definitions harder, as I need to pick a variable that I manually defined.

Isn't it possible to add some annotations or something similar to the code, that would show up a "Definitions" and "Main Block" in the outline view?

Posted by Peter Judge on 29-Jan-2008 08:12

You can add something like the below, which I've done to avoid this. It's obviously not perfect, but it works in all versions of Architect

-- peter

PS I find it a pain too, but once you move to OO code, it becomes way less of an issue (since all that doesn't appear in the outline is member variables).

Posted by dlauzon on 29-Jan-2008 09:16

One thing I use for the "Define" section that is better than AppBuilder, in some ways, is that I pop a second view on the same file (Window / New Editor) and I position one view in the definitions and one view in the code I edit so I can see both at the same time (same as you can do in Word with the "split" bars).

Posted by Admin on 29-Jan-2008 10:33

Hi Peter,

thanks for the advice. As written, I have this problem mostly with AppBuilder generated code. No way, that I move all that to OO :-)

Mike

Posted by Admin on 30-Jan-2008 01:55

/*----


-


*/

Posted by Thomas Mercer-Hursh on 05-Feb-2008 14:56

OK, another one. How about different indents for block indentation and within statement indentation (prior line does not end with period or colon).

Posted by Admin on 06-Feb-2008 01:25

Nice. But then it should be up to the developer to make the decision if the statement indention would be afixed amoung of characters/columns or be dependent on the statement (ASSIGN and FIND with different indentation)...

Are we awake yet or still dreaming?

Posted by Thomas Mercer-Hursh on 06-Feb-2008 11:07

My standards wouldn't require that level of customization ... and it seems a bit much. But, the simple dichotomy seems simple enough.

Posted by niekk on 18-Jun-2008 07:51

We are using UltraEdit, and when I do a search I have an option "List lines containing". It gives me a browse containing the lines containing the term I searched for and when I click a line in the browse the cursor will go to that line in the code. I know this can be done via Search/Search (CTRL-H), but that searches too much files, I would like this only on the file I am working on (CTRL-F).

Posted by jtownsen on 19-Jun-2008 02:34

One possible alternative is to use the menu Search -> Text -> File, which will limit the search to the current file in the editor. In the column on the right of the editor, you'll see the little (hyperlink) boxes showing all the places that the string occurs in the file.

Posted by niekk on 19-Jun-2008 03:12

Thanks, added a shortkey to that and that'll do the trick for now, but it doesn't show the complete line, the context of the searched term.

This thread is closed