ModelMaker Code Explorer 5.10
Source Indexer new features
- The source indexer combines results if a single line contains multiple occurrences of the searched identifier. If there are multiple matches, the number of matches is displayed like so [3] after the line number.
- New command "Show Source Indexer" to just activate the source indexer window in its current search state - without starting a new search for the current word at cursor.
- New keyboard navigation commands in source indexer window:
Down in Search edit focuses match results (Down just changes focus, without invoking the search command like Enter does)
Escape or Up Search edit focus the code editor.
Ctrl+Alt+S sets focus to the search edit. (Configurable in Properties | keybindings) - IDE editor commands to move to previous / next indexer match position. Default shortcuts Shift+Alt+F7/F8
- Source indexer now uses IDE buffers when scanning. As a result, there's no need to save files before rebuilding the index. Also search matches are build using IDE buffers rather than read from disk.
- Navigation has been changed: Pressing Space or mouse click on a match, locates the match without focussing the editor (or rather: the indexer is refocused). Pressing Enter or Ctrl+DblClick locates the match and focuses the editor.
- Multiple tab handling improved. For example, refreshing the index now refreshes tabs in their current state.
- New command "Refresh views" updates search matches and their cursor locations in all tabs - without rebuilding the index. Used to pick up changes from modified files.
New features
- Property navigation (Navigate up/down) now includes the property when cycling through access methods. (Down in implementations, Up in declarations)
- Method navigation (Navigate up/down) now cycles through overloaded method declarations / implementations. Up in declaration or Down in implementation moves to next overloaded method.
- Type selectors have a button to suggest type based on entity name and history. Shortcut Ctrl+H. This is similar to the already existing command / button in the parameter wizard. The shortcut for the parameter wizard has been changed to Ctrl+Alt+H to avoid a duplicate shortcut in the method dialog.
- New Metric: Check unwired event handler methods. Unwired event handler methods in a designer class (form, datamodule) can be an indication of dead code. Unwired event handlers are potential event handlers that are not linked to an event in any component. This could for example happen if the eventhandler was created but the wired component was deleted or its handler was changed. Changing the event handler visibility to private will let the compiler detect dead code (compiler warnings). Note: Available for Win32 VCL designer only.
- New Metric: check with statements. Using with statements is sometimes considered a bad programming style as they can lead to invisible (future) scope problems. Note: available for pascal only.
- MMX Properties is context sensitive. Invoking the command on live metrics will open the live metrics tab, similar for search results, parsing errors etc.
- Member Search bar: Pressing Escape when the search bar is empty, terminates module search mode.
- Member Search bar: Pressing Ctrl+End sets focus to the members view and selects the last item in the list.
- CodeGear: IDE editor Keybindings and explorer shortcuts are saved when clicking the properties dialog OK / Apply buttons.
- The default TODO item for new methods can contain CRLFs (Properties | [Language\ | Editing tab). A CRLF sequence is entered as \N Normal \ characters should be escaped like so \\
- Default sort all classes and Rearrange members are now also available from the main MMX menu (Sorting sub-menu).
- Rearranged the IDE MMX menus to create space for new commands. Code Explorer, Source Indexer and Sorting commands are moved to new sub menus.
- The (existing) known modules dialog allows defining modules contained by packages that should be skipped by the auto complete uses clause feature. Check button Properties | Pascal | Editing | "Edit modules..." next to auto complete used units.
- "Convert to const" inserts a new const section before rather than after an existing var section.
- Find next /previous has been revised. Check Properties | General | Searching for new options such as feedback window style, display search context, dropping a bookmark, colors and more.
- Custom find identifier, invokes the Find next / previous logic allowing to enter a search string rather than picking up the word at cursor position. Default keyboard shortcut is Shift+Alt+Home. It is also invoked by regular Find/Next if the editor is at line 1, column 1
- Explorer windows members view rearrange modes now accept multiple selected entities when re-arranging. Constraints are applied on each dragged entity. Also dragged entities cannot surround the drop target entity and must be either all below or all above the drop target.
- Editor Action bar has been removed. Causing too many problems and support calls. For those that want it back:
Go to: HKEY_CURRENT_USER\Software\ModelMaker\MideX\5.0\Options
add a string value named "ShowActionBar" with string data "True" and restart the IDE. - Pascal: Open Unit dialog now also displays *.inc files.
- Double clicking on a type selector, first selects the type and then accepts the containing dialog (as if OK were clicked). For example in method, field and local var dialogs.
- Pascal Win32: Insert component name now inserts names for all selected components, not just the first selected.
- Pascal: Double clicking a wired eventhandler now forces the editor visible and scrolls to the method - rather than displaying an error message.
Delphi 2007.Net and Generics support
A Delphi 2007.Net language mode may be selected on the Pascal | Parsing tab. In this mode, the parser supports generic types and navigation for generic types is also supported. Editing generic types is still under construction. In particular editing (including copy / paste) classes or methods with type constraints may result in incorrect declarations. Other editing operations may or may not work.
Unit Dependency Analyzer - redesigned
The Unit Dependency analyzer has been redesigned. Check the updated user manual for details.
Solved bugs
- Pascal: subrange types starting with a number literal were not recognized and caused parsing errors. Solved.
- Documentation editors would show an error: "Cannot modify source for unknown module type". Solved.
- In some (rare) cases "convert property to method" would place the method declaration outside the class interface. Solved.
- Reverse assignment would append a semi-colon, even if the original expression did not have one. Solved
- Delphi IDEs: Keybindings for the last three MMX commands were mixed up. Solved.
- Using a unit in a .dpr would create a new uses section instead of adding it to the existing one. Solved.
- Void module procedures would not be displayed with a type image in the members view. Solved.


Entity Insight