Friday, October 22, 2010

PEM Editor Items Under Consideration

This page is reserved for discussions of ERs that have been suggested for inclusion in PEM Editor.

I ask that you limit your comments here to items that appear on this page.  Eventually, of course, if all goes well, they will move forward to Planned Enhancements, and then eventually be implemented.

Please feel free to comment on the items listed here.  To make any other suggestion, please use Suggest New Features.

  • On the form for editing properties when multiple objects are selected:
    • Combobox for selecting properties/methods to add as columns.
    • Ability to sort on columns.
    • New checkbox column to select a sub-set of objects found; then be able to
      • Reset a particular property/method to default for all checked rows
      • Set the same value for all checked rows.
      • Change Parent Class (to same) for all checked rows
  • BeautifyX enhancements:
    • Add M-Dot (m.) to all locals (for my good friend Cesar)
    • Remove leading * from code lines
  • Search method code.  A replacement for Ctrl+F; produces a grid result like that of Code References.  
    • Regular Expressions
    • Continuation lines
    • Can select the method from the grid, or the object it belongs to
  • Extend Document TreeView to apply to PRGs as well. Completes the replacement for native Document View.  Some technical issues remain.
  • Provide interface to Beyond Compare to compare two methods or, possibly, even two classes or two forms.  Details still sketchy.  (Beyond Compare does a great job with VCXs and SCXs; this suggestion would apply to classes, instead of class libraries, and available when the class is open)
  • Putting SQL-SELECT statements into a standard format.  That is, re-arranging the phrases into the standard order, on new lines as appropriate. 
  • New IDE feature:  Extract to Local takes highighted text, prompts for a variable name, creates a new line assigning the highlighted text to the variable name, and then changes all references to the highlighted text to be the variable name, 
  • Further enhancements to Locals
    • Option to create locals list in order of first occurrence (rather than alphabetical)
    • Option to handle 'orphaned locals' -- names listed as LOCAL that are never assigned:
      • Keep 'em as locals (this is what happens currently)
      • Remove them altogether.
      • Add them on their own LOCAL statement, with a following comment indicating that they are orphans
  •  New listing, showing all code and parent code for all objects.  Uncertain at this time how to present this information, as it is not clear how to present all the code in parent classes when the same parent class occurred multiple times (requested by Rick S. -- awaiting his input)
  • Document TreeView displays correctly for formsets, but does not function properly -- it does not select an object properly, nor does it open method code properly.


  1. I'm curious about this one: "Remove leading * from code lines". Wouldn't that be dangerous? Code is usually commented out for a reason.

    Also, I hope "Add M-Dot (m.) to all locals" is an option I can turn off or code in a plug-in I can comment out, since I don't want that behavior myself.

    I like the orphaned locals idea. I think adding them on their own LOCAL statement works best, but if this is implemented in a plug-in, you wouldn't have to work about yet another preference option and instead could expose the code to do any of the possible ideas with the section not being used commented out. (As you can tell, I really like plug-ins!)

  2. Doug --

    (1) 'Remove leading * from code lines' was a suggestion added before Dynamic Snippets was invented. It will be able to be handled from there.

    (2) Re: 'Add M-Dot to all locals': EVERYTHING is optional. I don't want to foist anything on anybody. So, when implemented, this will be yet another option in the Preferences form

    (3) RE: orphaned locals: YES, handled by the Plug-in that is already there! I just need to include that information in the array that is passed in. Great idea!

    (4) More on plug-ins: Another feature I have long thought underused. I will pay special attention to see if suggestions can be handled by plug-ins, where possible.

    Thanks for this!