ModelMaker Code Explorer 9.0.5

General new features

  • Confirmed Delphi 2010 IDE command "Format Source". MMX intercepts the IDE command "Format Source" and proceeds only after you confirm. This avoids unnoticed re-formatting the source by accidentally pressing the corresponding keyboard shortcut. (This is already an option in the Delphi XE formatter)
  • Pascal: Extract Method will add local vars that are referenced outside the extracted code to the extracted method's parameter list. These parameters are displayed in the Extract Method dialog's parameter wizard. If such a parameter is removed from the parameter list is it inserted as local var anyway. This solves problems (invisible to the compiler) when local vars in the original method are used to transfer to / from the extracted method. The parameters are either inserted as "var" (for known value types like Integer and Boolean and string) and as "const" for other (reference) types. The var/const modifier can be modified in the dialog.
  • Pascal: Generic type parameters lists and constraints are stripped from macros "classname" and "membername" as used in surround and documentation templates. For example, the macro value for "Handler<T: constructor>" is trimmed to "Handler"
  • Explorer Classes view now supports displaying seemingly recursive relations in hierarchy mode:
    //C#
    class Sample: Samples.Sample {
    }

    // Pascal
    type
      TSample = class(UnitSamples.TSample)
      end;
  • Pascal: Convert Field to Property allows defining read access as [field, method] and write access as [none, field, method]. The existing "make default" check box allows changing the default setting.

C#5 support

  • MMX | Properties | C# | Parsing has a new C#5 language mode that enables the new async language feature.
  • The generation order of async keyword can be adjusted on tab MMX | Properties | C# | New Entities.
  • The async (context sensitive) modifier is supported by parser and editor. The await keyword can only appear in method implementations and is therefore uninterpreted.

Solved bugs

  • The "Use Unit" dialog would list the .dcu file rather than the .pas file depending on search path order. This made it impossible to use the "Use Unit" dialog to "Open" the source file in this case. Solved.
  • In very special cases - involving constructs like "TList = class (Classes.TList)" - an endless loop would occur when locating inherited classes. Solved.
  • In several dialogs the keyboard shortcuts have been revised and duplicates removed.
  • C#: the unsafe statement would result in parsing errors. Solved.
  • Pascal: The Module String Converter would show 0-based line numbers, rather than 1-based line numbers as the IDE does. Solved.
  • Pascal: The Module String Converter interaction with the IDE editor for multiple selection has been improved.