ModelMaker Code Explorer 4.10
New features
- Undo last MMX Operation, restores source including the editor view position and selection. An alternative for the IDE undo mechanism that does not always behave well with code modified by add-ins - (particularly the Borland IDEs). Available only immediately after changing the source using MMX. Manually changing the source or switching module disables the command. NOTE: requires the explorer window to be visible.
- Tip of the day: displayed at startup in Tip Window and/or Output message. Configure on Properties | General.
- Toolbars and pop up menus have Super Hints explaining non-trivial commands.
- Theme support: Properties | General | Display allows selecting a theme for toolbars, menus etc.
- D2005/D2006: Auto unfold blocks. When navigating using MMX source is auto unfolded - this fixes a bug in the IDE that does not auto unfold where required.
- Pascal/Win32: ActionList shortcut wizard. Picks up all TCustomActionList descendants from the current designer and allows assigning shortcut keys. Checks for duplicates. Screenshot
- Surround with Parentheses wizard. Surrounds selected text with ( ) . If no text is selected, it tries to be smart and locates an expression to surround with ( ). This will work in most common cases - more complex expressions will fail however. Default keyboard shortcut: Shift+Alt+9.
- Option "Insert type keyword when pasting class" on Properties | Pascal | Editing tab allows suppressing insertion of the type keyword when a class (or) interface is pasted in a module.
- Pascal: Class Interface hints are displayed for empty (void) class visibility and field sections as in the example below: typeThe Members view shows the details and allows removing the void section specifiers.
TMessy = class
private
protected
class var
const
end;
- Pascal: Convert to resourcestring and convert to const allow placing the declaration in module interface or module implementation. The default can be set on Properties | String Conversion
- Pascal: String conversions allow wrapping long strings. Wrap length is adjustable on Properties | String Conversion.
- Borland IDEs: Insert Component Name is an undoable operation. Previously the selection was replaced with the component name without IDE editor undo being available.
- Borland IDEs: The MMX pop up toolbar can be docked in the Borland IDE editor. It cannot be saved in IDE desktops, so you'll need to manually re-open and dock each session.
Live Documentation support
- Explorer Documentation Pane is read/write and can be used to create new or edit existing source documentation. Check the movie
- All entity dialogs have a Documentation tab.
- Documentation Spell Checker support - based on Addictive Software spell checker. Additional dictionaries can be downloaded from the Addictive site.
- Options that control formatting, (un)word wrapping when editing and generating documentation comments can be found on the Properties | General | Documentation tab.
- MMX optionally distinguishes two separate comments per entity: Documentation and One Liner. Comment type recognition is based on comment signatures. Check the super hints on the Documentation options tab for details on specific options. Note: XML Doc style does not use two different comments for One Liner and Documentation. For XML Doc, One Liners can be disabled. A profile is available per source language (Pascal | C#) that specifies the relevant comment signatures and One Liner mode.
- Documentation tools and surround templates available in Documentation tabs in dialogs and Documentation Pane. These templates can optionally be redefined per source language (Pascal | C# | Both). These templates are shared with ModelMaker 8.20
- The documentation surround templates can be used to insert tags like <summary></summary> and <code></code> The templates (tags or any other text templates) are fully customizable: Use "Surround with Template | Edit Templates" to show the templates editor.
- The default templates reflect XML Doc style tags.
- Additionally specialized commands using these templates are available on tool bars and in pop up menus.
- Default Template: When applying the default template, MMX first looks for a template named "system.Default_Template.[entitytype]" and if that is not available, it uses "system.Default_Template". [entitype] (omit square brackets) can be one of the following: Class, Field, Method, Property, Event, Delegate, Procedure The resulting macro is expanded with a single button click. Customize the default template code to your needs. The initial Default Template looks like this: <summary> <!location!>The macro _parameter_list_ expands the Parameter Tool described below.
</summary>
type: <!typename!>
<!_parameter_list_!>
You may create a default template for methods "system.Default_Template.Method" for example like this:<summary> <!location!>
</summary>
<returns> <!typename!>
</returns>
<!_parameter_list_!> - Parameter List: Uses the "system.Parameter_List" and "system.Parameter_Format" templates to expand the current parameter list. Effective for methods and array / indexer properties only - in all other cases it will expand to an empty string. Macro _parameter_list_ may be used to insert a parameter list in templates. Check for example the Default Template above.
The Parameter_List template can be customized to insert text before and after the list of parameters. The Parameter_Format template prefix code (only) is used to expand each parameter in the parameter list. The prefix code can be customized to modify the formatting of each parameter. The standard template looks like this:<param> name="<!param_name!>> <!param_type!></param>This result in an XML Doc style parameter list.
- Default Template: When applying the default template, MMX first looks for a template named "system.Default_Template.[entitytype]" and if that is not available, it uses "system.Default_Template". [entitype] (omit square brackets) can be one of the following: Class, Field, Method, Property, Event, Delegate, Procedure The resulting macro is expanded with a single button click. Customize the default template code to your needs. The initial Default Template looks like this:
- These special commands (Default template and Parameter List) use the templates stored in the "system" template folder. Do not rename or move the folder or any of the templates in the folder.
Solved bugs
- Pascal: Using the Edit Class dialog to modify class hint directives fails. Solved.
- Pascal: Pasting members with default visibility could cause wrong insertion position (outside class interface). Solved.
- Pascal: Class declarations without "end" as in EBad = class (Exception); would result in parser errors. Solved.
- C#: "Use.." would -silently- fail if the explorer was not synchronized. Solved.
- Pascal: The try..finally wizard would fail to detect instance creation if the constructor parameters list contained replacement words like True, False etc. Solved.

