New features in ModelMaker Code Explorer for Visual Studio 2.10

C# version 3 syntax support

  • Auto implemented properties supported.
  • The partial method modifier is supported.
  • The extension method this parameter modifier is supported.

Editor Tools Window

  • The dockable editor tools window containing a customizable IDE editor toolbar with all MMX IDE editor commands and the Entity Insight bar (see below).
  • The toolbar contains more than 80 MMX commands - by default only some frequently used are displayed. Additionally, commands are available from drop down buttons - similar to the sub-menus in the main MMX menu. Movie More MMX6 features demo movie
  • IDE toolbar contains alternative Member Search bar + search window.
  • IDE Editor related Tools in the Explorer members Wizard pop up menu were moved to the IDE main MMX menu and are available on the toolbar.
  • The Toolbar shrink mode can be set to Chevron or Wrap with the toolbar customize pop up menu.

Entity Insight™ bars

  • The IDE editor and Explorer members view contain an Entity Insight™ bar that tracks the selected entities and allows modeless changing of entity attributes like name, type and visibility. The editor bar tracks the (single) entity at cursor position, the Explorer EI-bar tracks the (multiple) selected members in the explorer members view. Movie: Entity Insight demo movie
  • If you hide the Explorer EI-bar (Properties|Display) (this is by default), the selected members in the Explorer window are linked to IDE editor Entity Insight-bar. An indicator in the Editor EI-bar shows the selection source (Explorer or Editor) to avoid confusion.
  • Entity Declaration shows the full declaration for the selected entities. Click the button to scroll the editor to the declaration.
  • Name - changes entity name. Single selected entity only.
  • Visibility - changes entity visibility.
  • (Return) type selector - changes method / delegate return type (+ procedure/function type) or field / property type name. To convert a function into a procedure, either type "" (empty string) or "void", or use the "Make void" command from type selector drop down style button (next to the type selector).
  • Change parameters - invokes a parameter wizard and operates on multiple selected methods / procedures - includes IntelliReplacing renamed parameters in all selected methods.
  • Method / Property binding - changes binding (non virtual, virtual, override, abstract etc..) for selected methods and properties
  • new modifier - toggles the new modifier for selected entities.
  • unsafe modifier - toggles the unsafe modifier for selected entities.
  • Add code snippet: adds a method code snippet to the selected method(s). Note: multiple selection is supported.
  • Field type - changes selected fields to instance field or static.

Interface Wizard

  • The Interface Wizard helps implementing interfaces by adding new members to a class or correcting the declaration for existing members. Movie Interface Wizard demo movie
  • To invoke the Interface Wizard: drag/ drop an interface on a class implementing the interface or copy an interface or members of an interface and paste this the class that should support the interface.
  • The wizard supports both implicit and explicit mapping modes.
    Pascal: explicit mode uses method resolution clauses to map interface methods on implementing methods.
    C#: the wizard dialog allows toggling the implicit/ explicit mode.
  • The Interface Wizard allows specifying the visibility for new members (default private) and the explicit or implicit mapping mode (C# only).
  • The Interface Wizard dialog shows the mapping analysis plus the actions required to implement each interface member. Optionally this dialog can be suppressed or displayed only when existing members will be modified.
  • Pascal: interface properties are implemented by methods only - the Wizard therefore only analyzes and updates methods for Pascal.

Modeless Event handler analysis view

  • The Event handler analysis view is now a modeless window that tracks the form designer designer linked to the top most editor. Movie: Event handler view demo movie
  • Selecting an event handler in the window, navigates to the associated source.
  • Component, event and the linked event handler are displayed in three sortable columns.
  • The Report command allows emitting analysis to printer, file, preview and clipboard.

Generic new features

  • Uncommenting using Toggle comment, removes the auto-inserted comment test if this is unchanged.
  • When used on a selection, Rename Local allows picking an identifier from the selected text in the Replace input combo box.
  • Creational wizard preselects the members selected in the explorer window or IDE editor - depending on how it was invoked.

New Source Indexer features

  • Close all tabs added.
  • Pressing Escape sets focus to the IDE editor.
  • Ctrl+Q clears all tabs
  • If errors occur when building the index, an errors icon will be available in status bar and toolbar. Its hint shows the first 10 errors, clicking it, allows viewing (printing etc) all errors.
  • Source Indexer search edit stores previously searched texts in its drop down list. Available only when option "Assign to combo drop down" is unchecked - which is the default.

External code navigation interface

  • MMXVS supports a basic interface to allow 3rd party tools to scroll the IDE code editor. Supported are:
    • Scroll to filename, line number, column
    • Scroll to file name (optional), class name, member name (optional). If the file name is omitted, MMX uses the navigation history to locate "class name". If member name is omitted, MMXVS scrolls to the class declaration.
  • This interface can be used from external executables running on the same machine or from packages or dll's loaded into the IDE.
  • Sample application: the DUnit GUITestRunner by Tiriss (pascal) uses this interface to navigate to test methods.

Solved bugs

  • In some cases Apply Class Template would insert properties in the wrong place (outside the class). Solved.
  • C#: Compound names space names as "namespace Root.Test.This { } " would make it impossible to save documentation in the documentation window. Also history based navigation would fail. Solved.
  • C#: Attributes containing { or } like [Test(new String [] {"a", "b"})] would cause parsing errors. Solved