Outline View

Posted by ccamarata on 16-Jul-2007 13:10

Has anybody else encountered this behavior when editing .p files and using the Outline View?

The button that expands include file contents (titled: Expand Include file contents within the Outline of the current file) seems to automatically activate and there is no way to "de-select" the button. The variables, temptables, procedures, and functions for the actual program are no longer shown, only the ones for the adm include that's at the bottom of the include chain.

The only way to get the Outline View to correct itself is to close the .p and re-open it. But then it's still only a matter of time before the Outline View is hosed again.

All Replies

Posted by ccamarata on 18-Jul-2007 12:02

I found that if you choose Configure Outline Filters and check the External References checkbox, the outline no longer will try to search include files. I'm still not sure why it automatically expands the include files without selecting the option but I'm satisfied with the behavior now.

Posted by ccamarata on 19-Jul-2007 10:06

I was premature in posting my "solution" to this problem. The .p's internal procedures still go away even with external references checked on the filter. This option just prevents the include files' procedures from showing.

The outline view initial shows correctly, it just disappears after a short time. I'm assuming it's working its way through the include files and when it's done the actual programs outline is gone.

Posted by Admin on 26-Jul-2007 14:56

The outline in my project shows up correctly. But the toggle-button "Expand include files..." remains disabled once it's clicked.

Even more strange is the fact that the setting on this button is per file. The filters themselves however are set for the outline view.

Trying to do the same with a Java source in a regular Eclipse 3.2 environment. The toggle on/off behavior of the filter buttons works fine!

Posted by ccamarata on 27-Jul-2007 12:54

It appears there are a number of known issues with the Outline View. If anybody out there knows how to at least make it outline the internal procedures that would be a great help. Most of our existing code is structured procedures and includes so going from procedure to procedure is a real pain without at least that functionality.

I found these in the 10.1B readme:

Issue Number: OE00135460

In Architect, a .p which has include files shows no outline

When a .p which references include files is loaded into the editor pane in

Architect no outline view will be shown.

Issue Number: OE00136176

Outline missing when include file has global-define preprocessor

OpenEdge Architect outline view does not display when there are

global-define directives in an include file.

http://www.psdn.com/library/servlet/KbServlet/download/2629-102-4821/README_101B_01.pdf

Posted by Admin on 27-Jul-2007 14:11

Another issue in the outline view:

DEFINE TEMP-TABLE ttCustomer NO-UNDO LIKE Customer.

becomes tt in the outline view.

My overall impression is that preprocessors are poorly supported in OEA.

However, I know many applications that are written using preprocessors extensively.

Of course, nobody ever said that OEA was the toolset to edit all your Progress code...

Posted by Matt Baker on 30-Jul-2007 22:19

The outline view performs a cheap optimization by not parsing include files when a file is initially loaded. The assumption being that if you only plan on viewing the file you probably don't need the external references (stuff defined in include files). You can still open any referenced include files from the list displayed in the outline view. Once you edit the file or press the button then file parsing is performed both on the current file and its referenced include files. This is done so that code completion and what-not works across include files.

Pressing the button sets an internal flag indicating that full parsing needs to be done and performs a full parse. Once you've started editing, there is no point in going back to the partial parse state so the button is disabled until you reload the file.

Posted by Matt Baker on 30-Jul-2007 22:24

The file processing (Abstract Syntax Tree) in 10.1B OpenEdge Architect does not include a preprocessor. Any preprocessors in the code are recognized as such, but are not resolved nor merged into the existing the code.

As such they basically become no-ops to the AST. There is some special case handling for stuff passed as part of include file references and preprocessors that span multiple lines.

Posted by Matt Baker on 30-Jul-2007 22:28

The external references filter for the outline will exclude all declarations (variables, temp-tables, methods...). This basically has no affect if you haven't either modified the current editor, or pressed the 'process includes' button. See previous post about what this button is for.

Anything that is considered to be an external declaration shows up as slightly gray and includes a lower-case 'i' annotation indicating that it was found in an include file.

Posted by ccamarata on 31-Jul-2007 07:10

Thanks for the information; that clears up why it starts out working fine then disappears.

Does anybody know if this is scheduled to be fixed in 10.1C? If not, is there a workaround to make Architect ignore the .i files in the code? I'd rather have my internal procedures listed than have it understand all the .i references.

This thread is closed