IntelliCommands Version History
Version 2.0.1.1
18 August, 2010
Fixes:
- Fixed a bug that significantly slowed down the "Code View" context menu with large code files. The code for handling menus in IntelliCommands was re-written in version 2.0 but a single logic was left out that caused same process to be called for every single menu items in "Code View" context menu.
Version 2.0.1.0
10 June, 2010
Fixes:
- Fixed a broken logic with Smart Interface commands that if the active class implemented any interface that was declared in the project caused a runtime error in IntelliCommands. Same bug also caused hovering over the context menu items of Smart Interface Commands to crash Microsoft Visual Studio© even though the runtime error was caught in a try..catch block.
Version 2.0.0.0
7 June, 2010
Fixes:
- Fixed Microsoft Visual Studio© 2010 and on certain machines with earlier versions that hangged Microsoft Visual Studio© on startup. To fix this issue the entire wiring code to Microsoft Visual Studio© has been rewritten to avoid further problems with the old routine. The new code also resolves other related issues with the addin being loaded on startup.
- Fixed icon transparency issue with Visual Studio 2010
- Fixed an issue with IntelliCommands that did not shutdown properly when unloaded and reloaded while Microsoft Visual Studio© was still running
- Fixed Extract Comparer Type context menu being disabled when selected type is interface
- Fixed Go To Property command that occasionally missed identifying a field
- Fixed "IComparable" smart interface command that failed to list member of selected type
- Fixed Create Overload Method context menu being disabled in Web Site Projects
- Fixed a broken logic in Extract Interface refactor command when the selected type was of struct (Struct in Visual Basic)
- Fixed a bug in Extract Interface dialog window that showed 'Inheritance Now' option disabled when the selected type was derived from a base class
- Fixed a bug in Extract Type From Parameters refactor command that created members twice
- Fixed menu context issue with ICloneable smart interface command that stayed disabled with struct (Struct in Visual Basic) types
- Fixed an issue with Outling #region directive commands when executed from one of the Solution Explorer's context menus
- Fixed a minor issue with undo naming in Outlining commands
- Fixed a bug in Unregionize With Exclusion command that under certain condition "Unregionize With Check" was executed instead
- Fixed several broken logics in menu context of Smart Interface ICloneable command that did not enabled or disabled the menu items when it should have.
- Fixed all broken hyperlinks in License Management dialog windows.
New Features:
Enhancements:
- Extract Interface and Extract Base Provider Class commands' context menu now show disabled when the selected type has no qualifying members
- Enhanced Extract Interface and Extract Base Provider Class commands' context menu now show disabled when the selected type has no qualifying members
- Introduced multi member selection to Extract Interface refactor command
- Enhanced Go To Property command to enable detection fields by selection
- Enhanced verbatim identity handling in both C# and VB.NET
- Enhanced Encapsulate Getter/Setter, Encapsulate Getter, and Encapsulate Setter commands to handle multiple fields selection
- Enhanced Encapsulate Getter/Setter, Encapsulate Getter, and Encapsulate Setter commands to create the properties right after the last properties in the same code file. If no property exists in the code file at the time of running these commands the location will be either after the constructors or last declared field in the code file.
- Enhanced Encapsulate Getter/Setter, Encapsulate Getter, and Encapsulate Setter commands to make sure the getter and setter of the property match the overriding properties of the base type.
- Rewrote Navigate Up and Navigate Down commands. This command now navigates up and down members only. The previous implementation navigated to #region directives as well
- Enhanced Extract Comparer Type by allowing multiple members selection. Once members are selected only the selected members will be shown in the dialog window of the command
- Enhanced "Extract DTO" data command by allowing multiple members selection. Once members are selected only the selected members will be shown in the dialog window of the command
- Enhanced Encapsulate Fields refactor command by allowing multiple members selection. Once members are selected only the selected members will be shown in the dialog window of the command
- General performace (noticeable) improvements.
- Few minor internal enhancements
Breaking Changes:
- IntelliCommands no longer handles the command shortcuts other than saving them. With each release of Microsoft Visual Studio© there will be conflicts with default shortcut keys and eventually Microsoft will consume all possible key combinations. IntelliCommands now saves your shortcuts keys in a file called shortcuts.xml so you can port this file to another machine or backing it up if you plan to re-install Windows©
Obsolete:
- Solution context menu no longer added. Running commands against the entire solution where the solution contains few projects and hundreds of code files could work out too much for Microsoft Visual Studio© and it could potentially bring the machine's processor to idle.
- Solution Folder context menu no longer added. Since the widest scope a command can run is a project and the Solution Folder only contains projects the content menu no longer was needed
- Removed "Reformat" command from the context menus. This command now only used internally by IntelliCommands. I would re-introduce this command in the next major release of IntelliCommands.
- The Encapsulate Fields command no longer support regionization after creating properties. All other commands would eventually stop supporting Regionization in the next major release.
Version 1.9.6.0
09 May, 2010
Fixes:
- Fixed a minor bug in Extract Proxy Class command's dialog window. Unchecking the sealed
(NotInheritable in VB.NET) box now effecting the new proxy class (Class in VB.NET).
New Features:
- Added by request, the Xmlize data command
now creates two additional static (Shared in VB.NET) methods to return an instance
of declaring type from an XmlDocument object or Xml String. Generic
types are fully supported by these new methods.
Enhancements:
- The Smart IDisposable "Extended" command now fully conforms to the IDisposable pattern.
- The Extract Proxy dialog window's title now shows the selected type for clarity.
- Xmlize data command now adds XmlRootAttribute to the declaring class for future
proofing. There are cases where without the XmlRootAttribute the Deserialization
process can fail. Future proofing in this context means minimizing the risk of failure.
Generic types are more pron to failure than non-generic types in deserialization
process.
Version 1.9.5.0
06 May, 2010
Fixes:
- Fixed a generic type related bug with Extract related commands. By default if the
generic type that the Extract command is operating on is generic then the extracted
new type would be generic if at least one member references to one of the type's
generic type parameters. The bug caused the new types not to be generic when a member
did reference one of the type's generic type parameters.
- Fixed an issue with the demo version of IntelliCommands that prevented to run on
some machines.
Enhancements:
- Default setting of Regionize option for extract commands has been set to unchecked
now.
- Significantly enhanced using (Imports in VB.NET) directive when creating new code
files that are created by one of the Extract commands.
- In VB.NET the Extract commands no longer surround new types with a Namespace, that
is, if the Type the Extract Command is operating on not surrounded with a namespace
itself. Namespaces in VB.NET are handled very differently than to C# and it was
assumed Namespaces are not used as extensively as in C#.
- Minor internal code enhancements to minimize intruptions while executing extract
commands.
Version 1.9.1.0
25 Apr, 2010
New Features:
- Added Microsoft Visual Studio 2010 support to the setup program.
Enhancements:
- The 'Default Constructor' command was enhanced to create constructors for the base
class constructors as well. A borrowed feature from 'Constructor' command.
- The 'Constructor' command has been enhanced to include readonly fields that were
not set/assigned at declaration time. These fields can be optionally selected to
be initialized by the constructors.
- Both 'Constructor' and 'Default Constructor' commands were enhanced to mark constructors
of abstract/MustInherit classes as protected/Protected now. Constrcutors of abstract/MustInherit
classes no need to be public.
- Moved the IntelliCommands menu item in Code Window popup menu to the top.
Version 1.9.0.2
12 May, 2009
Fixes:
- Fixed a minor bug in 'Extract Collection From Type' refactor command.
Version 1.9.0.1
11 May, 2009
Fixes:
- Fixed a problem where under Windows Vista and Windows 7 the configuration file could
not be saved. The configuration file now is saved under "Common Application Data"
folder.
Version 1.9.0
26 May, 2008
Fixes:
- Fixed an issue with Smart IDisposable in VB.NET language where
the Finalizer method missed adding a call statement to MyBase.Finalizer()
method.
- Corrected the badly written descriptions in IDisposable's dialog window for prompting
field types that implement IDisposable.
- Fixed a VB.NET related bug where generic interfaces were not handled properly by
the Regionize Process.
- Fixed Default Constructor command with C# static classes where
the default constructor was given a visibility access. Also fixed an issue in C#
where presence of the static default constructor prevented the
creation of instance default constructor.
New Features:
- Added Extract Comparer Type
refactor command. This command creates a comparer class that implements IComparer<T>
interface for the enclosing class or interface. The sole purpose of the comparer
class in IntelliCommands is to add sorting features to the generic
collection types. All .Net types including Guid is supported so as any types that
implement IComparable or Generic IComparable interface.
This command can create comparer types that support multiple property sorting known
as Dynamic Sorting.
- Added Extract Comparer
Type ExtRef command. This command offers the same features as Extract Comparer
Type except is designed to work with externally referenced types in
projects.
- Added IComparable/Generic IComparable
to Smart Interfaces. Public and Explicit implementation are supported only. Similar
to Extract Comparer Type command you would be presented with a
list of Properties that you can select and to set the comparison order. This command
can implement both IComparable and Generic IComparable interfaces at same time for
your convenient.
- Added WinForm ListView Comparer
command. This command creates a comparer type that can be used by ListView control
to sort columns. This command is accessible from Project's Context Menu only.
- Added Apply Guid Attribute
command. This command would make it much easier to add GuidAttributes to the supported
type definitions. When this command is run from one of the Solution Explorer's
context menus then it would apply GuidAttribute to all selected code files.
Enhancements:
- Added Sort support to Extract Collection From Type command. With
the introduction of Extract Comparer Type now you are able to create
the comparer type on the fly and add an approperiate Sort
method to the extended generic Collection type.
- Added support to Extract Collection From Type command to save the
new code file immediately after the operation.
- Added support to Extract Collection From Type command to implement
the IDisposable interface in one operation.
- Re-arranged the Solution Explorer's context menu items to improve usability.
- Re-arranged Code View's menu items to improve usability. The
Refactor sub-menu is now shown as the first menu since most users would
use it more often than the others. Moved attribute related commands to its own sub-menu
called 'Attribute' to reduce the number of commands shown in
Refactor sub-menu. Refactor commands with no dialog window are listed
directly under IntelliCommands menu for quick access now.
- Slightly improved several dialog window of the commands.
Version 1.3.6
17 April, 2008
Fixes:
- Fixed a minor issue with reading members location. This issue caused the
Reformat command to add an extra line on rare occasions.
- Fixed Business Object Generator with ISerializable
option enabled. The default constructor is now created when ISerializable
option is enabled.
- Smart IDisposable command no longer documents the if statement
in overloaded Dispose() method when the Document option is disabled.
Enhancements:
- Changed the default value of Add XmlAttribute of Business
Object Generatror to false.
- Added support to Smart IDisposable command to dispose each element
in types that extend a generic collection type i.e. Collection<T>. Please
note; this feature is only available for C# and the constructed type
must have implemented IDisposable interface.
- Enhanced Smart IDisposable command to create the boolean varaible
at correct position when Regionize option is disabled.
- Enhanced Smart ISerializable command to create the constructor
member right below the last existing constructor in the type, otherwise if no constructors
were declared before it would be created at the bottom of the type.
Version 1.3.5
13 April, 2008
Fixes:
- Fixed Extract Collection From Type command where nested types with
Same Code File option enabled created the collection types on the
root of document instead of inside of the parent type.
- Fixed Smart IDisposable command issue with reference type fields.
The issue added a Clear() method call to fields in overloaded Dispose() method.
I have introduced few bugs with IDisposable while enhancing it over past few releases.
I owe you guys an apology.
- Fixed Extract Proxy Class ExtRef command where assemblies with
depedencies could not be loaded therefore threw a runtime.
New Features:
- Added Extract Collection From Type ExtRef command. This command
works exactly like Extract Collection From Type command except
it is designed to work for types in project's referenced assemblies. This command
is available from Solution Explorer's Project Menu.
Enhancements:
- Added shortcut keys to the captions of UI controls where they were missing.
- Added duplicate member checking to the Regionize This command to
prevent brining down to whole process. From now on types with duplicate members
will be ignored.
Version 1.3.0
07 April, 2008
Fixes:
- Fixed Extract Type From Parameters command single parameter renaming.
Also fixed minor issues with the dialog window of the command.
- Fixed Event-Handlers Regionization issue with Member Regions
and fixed the sort oder of parent type regions.
- Fixed Extract Interface and Extract Base Provider Class
property visibility issue when getter or setter had different visibility to the
property.
- The dialog window of Extract Base Provider Class command no longer
lists C# properties that have private getter or setter and no longer lists VB.NET
properties that either getter or setter does not match to the visibility of property.
- Fixed an issue with Extract Interface command where in VB.NET generic
interfaces weren't properly used for implementing members.
- Fixed Smart ICloneable issue where examining fields with generic
argument type caused runtime exception.
- Fixed Smart ICloneable issue where public implementation of sealed
(NotInheritable in Visual Basic) classes were done explicitly instead.
- Fixed Smart ICloneable issue where in VB.NET explicit implemetation
created Overridable Clone() method.
New Features:
- Added the following database servers to BO/VBO Generators:
- Microsoft SQL Server Compact Edition 3.1 and 3.5
- Microsoft Access Database
- Oracle (supports the same versions that .Net provider support)
- MySql Server (MySql Direct and CoreLab providers are supported)
- PostgreSql (Supports array types, multidimensional array types, enum type, and multidimensional
enum types)
- Sqlite 3.x (Phxsoftware
and CoreLab providers are supported). Virtual Tables are considered as Views in
IntelliCommands.
- Firebird 2.x (Supports Array Types)
- VistaDB 3.x
- Added Extract DTO Class command. The concept behind this command
is to create DTO (Data Transfer Object) for BO quickly. Of course same as
many other commands in IntelliCommands you can use the same command
for other purposes too and the command provides options for that. For instance you
can create virtual (Overridable in Visual Basic) properties for
the DTO class that doesn't go very well for DTO types in general but since you might
use this command for other reasons the command provides similar options for you.
Explict casting from active type to DTO is supported. You can optionally implement
IDisposable, ISerializable, and ICloneable
interfaces.
Enhancements:
- Removed private (Private in Visual Basic) visibility option from
Column ListView of BO/VBO Generators.
- Added Project Folder Picker to Extract Type From Parameters
command dialog window to enhance usability.
- Enhanced Project Type Browser dialog. Pressing the Enter
key on a Type would select the Type and pressing the ESC key will
close the dialog window without selection.
- General enhancements to BO/VBO generator wizard.
- Added support to Microsoft SQL Server connection wizard to use database file instead
of database name.
- Renamed Extract Provider Class command to Extract Base
Provider Class for clarity.
- Added support to Extract Interface command to handle Private members
in VB.NET.
- Enhanced the commands that would generate generic types i.e. Extract Interface
by checking which generic arguments are in use by the selected members. Previously,
if a class had more than one generic arguments and only one of them was used by
the selected members the new type would have all the generic arguments.
Version 1.1.0
10 March, 2008
Fixes:
- Fixed Add parameters to the begining of base constructors option
of Options>Constructor Generator where it did not persist its
setting.
- Fixed Encapsulate Fields's ListView related issues where Cell Controls
may not have been shown correctly when columns were expanded beyond the screen region.
New Features:
- Added Business Object Generator and Virtual Business Object
Generator features. You can create Flat Business Objects
and Virtual Business Objects from database tables and views respectively.
Synchronisation of BOs/VBOs to database objects is supported. For this release MS
SQL Server is supported only but there is a plan to support more database servers
in the near future.
- Added Xmlize Type feature. Xmlizing Type is a
posh name for adding supports to instance class types to return XmlDocument and
XmlString.
Enhancements:
- Added support to Project Folder Picker to add new folder on the
fly. The new folders can be renamed and removed on the same session as the dialog
window. Also redesigned the key press handling, pressing Enter
on a Folder node would select the folder and pressing the ESC key
closes the dialog window now.
- Added Returns Null feature to Encapsulated Fields
refactor command. There are cases where you would want string properties to return
String.Empty instead of null. One common use for such requirement would be when
you want to assign TextBox's Text property with the value of a string property.
If the property returns null (Nothing in Visual Basic) you would
get an exception. If you set Returns Null to false (False
in Visual Basic) the generated property always return Empty string. This is very
time-saving feature as it is very hard to create such properties on frequent basis.
- Added Hex String To Binary and Binary To Hex String
conversions to Hex Tool.
- Reorganised Solution Explorer menus to enhance usability.
- Added support to Smart IDisposable command to call the Clear()
method for types that extends Collection<T>, ReadOnlyCollection<T>,
List<T>, CollectionBase, or ReadOnlyCollection.
- Added support to Smart IDisposable command to create the appropriate
statements to call the Clear() method of any field that has List<T>,
Collection<T>, or ArrayList type.
Version 1.0.1
27 Feb, 2008
Fixes:
- Fixed Smart IDisposable command where it did not prompt for Fields
that implemented IDisposable interface.
- Fixed Property Regionization issue where incorrect constraint value caused
Member Regions to be applied incorrectly.
- Fixed Property Regionization issue where Properties under Visibility Region
weren't being sorted.
- Fixed field renaming issues in Constructor refactor command.
Version 1.0.0
26 Feb, 2008
Fixes:
- Create Target Method command no longer creates the event calling
statements when the event is not declared in the active type.
- Fixed Create Target Method command to name an event's Event-Handler
correctly.
- Fixed Smart Interface commands where the inheritance detection did not work properly.
New Features:
- Added Introduce Soft Cloning command. There are cases where a reference
type cannot be changed hence you just want to copy values from one type to another
without using the Hard Cloning technique which it returns a new instance reference
of the type. You would encounter such scenariors often with Business Objects. Both
properties and fields (visible to outside) are supported. This is yet another timesaver
command that is introduced to IntelliCommands. There are still rooms to improve
this command but I'd like to wait and see how often this command will be used first
before investing more time into it.
- Added Smart ICloneable to Smart Interfaces. It Serializes the object
to Memory using Binary formatter then deserializes the memory buffer and returns
the result as an object. This technique is used only if the class contains field
reference types or the type extendeds another type, otherwise the MemberwiseClone()
method will be used for simplicity.
RC8.17.02.2008
17 Feb, 2008
Fixes:
- Fixed an issue with Single Member Regionization where it did not
Regionize constructors when its root region was already present.
- Fixed Smart IDisposable issue with non-partial types. The same bug also caused partial
types in VB.NET not to be processed correctly. The source of this bug may also had
an impact on other commands that used the same culpable method.
- Fixed an issue with Regionize Control Block command where nested
control blocks weren't handled properly.
- Fixed an issue with IntelliCommands addin that didn't remove parent Menus in Solution
Explorer pane on session unload.
- Fixed Inconsistence Namespaces dialog window issue where the 'Open
Selected Items' didn't do anything when it was clicked.
- While conducting more tests with Visual Studio 2008 from time to
time VS2008 crashed unexpectedly. After hours of testing I concluded that the sequence
shortcut (Ctrl+Shift+W) that was used for the commands that are listed directly
under IntelliCommands's Code Window menu was the source of the problem. VS2008 uses
Ctrl+Shift+W for itself now. The sequence key is now replaced with Ctrl+Shift+5.
I haven't managed to reproduce the same crash ever since.
- The shortcut for Options window is also changed since under VS2008 Ctrl+Alt+Space
is not accepted. The new shortcut for both Global and Text Editor is Ctrl+Alt+K
now.
- Encapsulated Field commands no longer declares private properties
as virtual (Overridable in Visual Basic).
New Features:
- Added Hex Tool that includes seven different hexadecimal conversions.
These are:
- Text to hex
- Hex to text
- Text to decimal
- Decimal to text
- Hex to decimal
- Decimal to hex
- Hex to .Net Color i.e. #ffffff to 255, 255, 255
Every developer at one point needs to generate GUID to use it directly in the code.
Luckily, Visual Studio gives you the tool for it that I'm sure you found it very
handy. Now, here it comes a tool for your hex conversion needs that always were
missing in your toolbox. This command is available from Tools>IntelliCommands
then Hex Tool...
- Added Encryption Key Tool for generating encryption keys to be
used directly in the code. It supports Asymmetric, Symmetric, and Keyed Hash Algorithm
providers. This tool would be handy if you would like to store encryption keys for
repetitive use. This command is available from Tools>IntelliCommands then
Encryption Key Tool...
- Added Convert String Tool that converts string to various formats.
Having done the other tools I was certain that you would want a separate tool to
be able to produce the same supported outputs. With this tool you are able to convert
string to Hex, Array of Bytes, Array of delimited Bytes, and Base64String for storage
porposes directly in your code files.
Enhancements:
- All Encapsulated Field refactor commands now uses the Type's Access Modifier to
determine the property's visibility when the field's access modifier is private
(Private in Visual Basic).
- All Encapsulated Field refactor commands now check to see if the new properties
should be declared as override (Overrides in Visual Basic) if the
Type has the corresponding abstract property in its base types.
- IntelliCommands addin now can be fully unloaded/reloaded in single session of Visual
Studio.
- Create Target Method refactor command has been enhanced to support
creating the statements to call an event. This applies only when the command was
executed from a declared event in the code file. Also added an option to declare
the method as virtual (Overridable in Visual Basic).
Important Notes:
The configuration file needs to be deleted to solve some of the issues that were
highlighted in bugs section.
Close all instances of Visual Studio then delete the configuration file (MojabSoftware.Addins.IntelliCommands.xml)
from the installed directory then go to Tools>IntelliCommands>Options. Once
the window is opened just click the OK button. The new configuration file with the
default shortcuts now is written to the file.
RC8.23.01.2008
23 Jan, 2008
Fixes:
- Fixed an issue where Overloaded Regions were being created under the Visibility
Regions when they shouldn't have.
- Fixed an issue where Extract Interface and Extract Provider
Class did not generate the where constraint of the abstract
generic methods. Also fixed the Extract Provider Class refactor
commmand that did not remove where constaint of the extended methods
in C# language.
- Fixed several issues with formatting types in particular with Generic types.
New Features:
- Added supports to all "Encapsulate Field" refactor commands including "Encapsulate
Fields" to take advantage of Field-Property grouping of the Regionize process. If
the Field-Property grouping option is enabled the Regionize Process would use this
grouping kind instead.
- Added supports to Single Member Regionzation to preserve user-created
#regions. I've recently blogged about
The Single Member Regionization power and also highlighted about its incapability
to preserve the user-created regions. Luckily, it turned out a relatively easy solution
to add to the Regionize process, minding you IntelliCommands is the only tool that
can do that for you.
- Added supports to Smart IDisposable command to call the Dispose()
method of any reference types that implements IDisposable interface. A dialog window
will be displayed to list such fields. This feature has been re-introduced with
different approach after one of the IntelliCommands's loyal users did request this
feature.
- Added Extract Proxy Class refactor command. This command creates
a proxy class from an existing class or interface. Proxy classes are one of the
most labour intensive jobs a developer would do. Due to the popular demand this
rather important command has been introduced to IntelliCommands sooner than it was
scheduled.
- Added Extract Proxy Class ExtRef refactor command.
Similar to the Extract Proxy Class this command would also create
a proxy class but for classes and interfaces that are referenced externally to your
projects. You may find this command in Project's Context Menu from Solution Explorer's
pane.
- Added project folder picker feature to Extract Interface,
Extract Provider Class, and Extract Collection From Type
refactor commands. Now you can create the new types in the desired locations instead
of moving the code file to the desired location afterwards.
Enhancements:
- Smart ISerializable now generates short type names instead of full type names on
deserialization. All namespaces are automatically added to the document.
- Added .aspx and .ascx designer files to the default file filtering for the Regionize
Process.
- Renamed Extract Super Class refactor command to
Extract Provider Class. This command was designed based on
the Provider Pattern therefore it was appropriate to be renamed.
Notes:
As it stands Exract Proxy related commands have one common issue.
Since IntelliCommands shortens the usage of type references it can cause type ambiguity
on rare occasions. We have left this issue for now and will sort it in one of the
upcoming releases before version 1.0.
RC7.12.01.2008
12 Jan, 2008
Fixes:
- Resolved Reformat command issue when executed from the root of a document.
- All the bugs that you might have experienced working with "Web Site" projects have
been resolved now.
- Fixed a rare bug occurance in all Unregionize related commands.
- Fixed the issue where Properties weren't sorted by Regionization.
- Fixed a newly introduced bug in Regionize process with the Overloaded Methods.
New Features:
- Added "Surround With Namespace" refactor command. This is a powerful feature where
you can surround from a single type definition to the entire types in a single solution
with namespace. Partial types are automatically updated even when surrounding a
single type with namespace. This command would also update the web page's "Inherits"
attribute of types. All namespaces are automatically assigned by calculating the
physical location of the code file in the project.
- Added "Apply Serializable Attribute" refactor command. This is a quick way to add
System.SerializableAttribute attribute to types such as Classes,
Structs, Delegates and Enums.
- Added "Apply AttributeUsage Attribute" refactor command. This is a quick way to
add System.AttributeUsageAttribute attribute to class types. This
command would add System.Attribute to the base of the active class.
- Added Field-Property grouping feature to the Regionize process. This is a popular
grouping among developers. Single Member Regionization is supported.
- Added "Create Overload Method" refactor command. This command creates an overload
method for a method.
- Added a new configurable feature to the Regionize process to allow user choose how
the "System and Microsoft" Imports/Using directives should be sorted. Now by default
it keeps all "System and Microsoft" namespaces together at the top of all other
import directives.
- Added "Report Inconsistence Namespaces" command. It lists code files containing
namepaces that do not match to the physical location in the project.
- Added "Surround Member With Region" command. It surrounds a member with region without
selecting the entire member boundary. It uses the member name for the region name
automatically.
Enhancements:
- Added supports to the Reformat command to reformat members as well. The reformatting
complies with the instance of Visual Studio's Formatting styles that is running.
With the introduction of this enhancement you can reformat the entire solution to
your liking if the code files have different formatting styles.
- Enhanced User Experience with "Solution Explorer" context menus where user no longer
need to expand .aspx or .ascx files to select the code behind files to execute commands
against them.
- Added "IntelliCommands" menu to several new Solution Explorer's context menus.
- Enhanced the functionality behind all Unregionize commands to leave less blank lines
after removing region directives.
- The default Shortcuts have been changed in the manner that they are much easier
to remember now. All shortcuts now use sequence keys. The shortcuts have been divided
into three groups each starts with the same sequence key i.e. all region related
commands now start with the Ctrl+Shift+#, Refactor commands start with Shift+Alt+R,
and all other commands start with Ctrl+Shift+W. Please go to IntelliCommands>Options
then click on Keyboard node to view all shortcuts assigned for IntelliCommands.
- Added supports to handle "Web Site Projects" better.
- Added Source Control supports to the remaining commands that were left out. The
Source Control support have also been improved.
Breaking Changes:
- The configuration settings have been checked and removed some of the options that
were no longer needed. This change would make your configuration files invalid since
its schema no longer matches to the current release. IntelliCommands always automatically
uses the default settings in such events. Please go to Tools>IntelliCommands>Options
and once the dialog window is opened click the OK button to permanently rewrite
your configuration file.
RC7.23.12.2007
23 Dec, 2007
Fixes:
- Fixed the Regionize issue with "Extract Type From Parameters" where imports/using
directives were left out.
- Fixed VB.NET "Extract Interface" where the code did not add the 'Implements' clause
to the extending members.
- Fixed CSharp "Extract Interface" where it might have raised an exception.
New Features:
- Finally added a Setup Program.
Enhancements:
- Added supports to "Extract Interface" and "Extract Provider Class" refactor commands
to allow user to create the new types in the same code code file as the concrete
type.
RC7.21.12.2007
21 Dec, 2007
Fixes:
- Fixed the Regionize issue where spaces were inserted between properties in Interface
types.
- Correct Event region name is used for Intrerfaces now.
- Fixed where an Encapsulated Field might have been detected incorrectly.
- Variables in partial types are listed in dialog window of “Encapsulated Fields”
refactor command now.
- Fixed a VB.NET related bug in “Encapsulated Fields” refactor command. While determining
the field’s property name it could have thrown an exception.
- Fixed a bug where if a type contained encapsulated fields only the Regionization
process would have failed to Regionize them.
- Fix an exception in C# when regionizing overrided properties.
- Fixed a bug in VB.NET where “Sort Members” commands caused codes to be corrupted
when there was no spaces between members or members and regions.
- Fixed Shortcuts issue where newly added commands' shortcuts weren't being displayed
by synchronising existing configuration file with the new shortcuts.
New Features:
- Added "Extract Interface" refactor command.
- Added "Extract Provider Class" refactor command.
- Added "Extract Type From Parameters" refactor command.
- Added "Extract Collection From Type" refactor command
- Added supports to Regionize imports/using directives in the document level and in
the Namespaces.
- Added supports to Regionize any enums that are declared in the root of the documents
and namespaces.
- Added supports to Regionize any delegates that are declared in the root of the documents
and namespaces.
- Added supports to Unregionize regions in the root of documents and namespaces.
- Added supports to "Unregionize With Check" command to handle the new region types.
- Added supports to Collapse and Expand regions in the root of Documents and Namespaces.
- Added Region Browser feature. View members inside of regions without opening them
first. You can also navigate to a member from the browser.
- Added "Select This" command. It allows you to quickly select a member. This is a
handy command if you are making repetitive selections or the member you wish to
select has overlaped from the code view.
Enhancements:
- Added Virtual (Overridable in Visual Basic) option to "Encapsulate Fields" refactor
command.
- Encapsulated Fields command cannot be executed when the active Type Definition has
no variables declared nor has Fields to be encapsulated, meaning all declared variables
have already been encapsulated.
- Improved the performance of IntelliCommands’s menus by changing how it works. Instead
of disabling menus when a command is not allowed to be executed now you would be
prompted by an error dialog message. Types with large members did not perform well
in the previous model.
- Improved how Overloaded Methods are listed when mixed with other Methods under a
parent region. Overloaded Methods would be listed and sorted together if other methods
are not going to have member regions, otherwise would be listed and sorted among
other methods. This new listing format is similar to Folders & Files listing
in Windows Explorer.
- Shorten the generic construct Type name of Overrided Members regions.
- Added IntelliCommands’s menu to “Solution Folder”. This folder type can contain
projects.
- Enhanced the "Sort Members" commands to produce better formatting after sorting
members.
- Enhanced the Reformat command.
- Members within CSharp's #if conditional directives are no longer processed by the
Regionization process.
RC6.30.11.2007
30 Nov, 2007
Fixes:
- Fixed "Regionize Control Block" related bugs
- Property Names are checked upon renaming in Encapsulated Fields Dialog Window to
prevent duplicating property names.
- Encapsulation Field commands for VB.NET uses insensitive case pattern now to search
for existing property names.
- Fixed a bug where a Const field was encapsulated as Static (Shared in Visual
Basic).
- Fixed a problem where no spaces between two members may have caused the Regionize
process to produce wrong outputs.
- Fixed a bug in “Create Target Method” refactor command where Struct types would
have caused a runtime error in the dialog window.
- Fixed a bug in "Create Target Method" refactor command where base types containing
events and delegates weren't listed.
- Collapsing and Expanding Member Regions commands are shown disabled in VB.NET now.
- Fixed closing the addin while still Microsoft Visual Studio is opened.
New Features:
- Added Smart Commands to the Folder’s Context Menu in Solution Explorer.
- The Regionize process can optionally group the encapsulated fields under a child
region separating them from other kind of fields.
- A new command called “Unregionize With Exclusion” has been added. You can now setup
regions that you wish to be excluded when removing regions.
- Added new command “Remove Empty Regions”. You can run this command from the caret
position to the entire solution to remove empty regions.
- Added new command “Unregionize Member Regions”. A C# only command to remove regions
within members only.
- Added Constructor and Default Constructor refactor commands. You can use Constructor
refactor command to generate multiple constructors at one time. All base constructors
will be listed for you to increase productivity. Default Constructor refactor command
is a quick way to generate the default constructor.
- Added File Filtering capability to the Regionize process. A management tool has
also been added to manage the filtered files. There are cases where certain files
in Windows and Web Projects should not be Regionized or to be modified for that
matter. You can also add your own files to prevent them from being Regionized.
Enhancements:
- The most significant enhancement to IntelliCommands is the total re-writes of the
Regionize process engine. The new process engine gives you far better control over
the region grouping and sorting orders. Now grouping can be applied automatically
upon the number of members that are going to be listed. This powerful and initiative
way solves one big issue that I always had concerned about.
- "Single Member Regionization" process has also been re-written to take advantage
of the new enhancement.
- Member Attributes handling has been improved in both C# and VB.NET.
- Region Names are no longer trimmed. This will enable the VB.NET developers to add
spaces before and after the region names if they wish to. The leading spaces have
no benefits to C# developers.
- "Go To Property" command has been enhanced to find the property of fields with no
prefix or with prefix other than to what has been entered in the configuration tool.
Also the command can now find and show the property if it was declared in different
physical file (partial types).
- The Regionize process can now be configured for each supported language separately.
This would enhance the Regionize process usage where user has multiple projects
with different languages in the same Solution but wish to use different settings
for each language.
- Redesigned and added new Context Menus to the “Code Window”. The new design takes
less space in “Code Window” context menu. The commands have also been organised
by their usage.
- The Configuration Tool has been redesigned to improve usability.
- Keyboard handlings have been improved in all Dialog Windows.
- Encapsulated Fields Dialog Window has been improved. Now if the Regionize option
is not selected the properties will be created at the caret position saving you
from one cutting and pasting operations.
- Enhanced the usability of “Regionize Control Block”. You no longer need to click
on the header of the keyword to run this command. The command will try to find the
next valid keyword from the caret position.
- Keyboard page of Options dialog window has further been improved.
- Added support so that the generated members use the Visual Studio’s language formatting
settings.
- Added Visibility option to “Create Target Method” command.
- Has improved "Create Target Method" usability by allowing the active Type Definition
to be handled and also added support to handle declared Fields with Delegate types.
Obsolete:
- Due to the significant changes to the Regionize Process the Regionize Profiling
concept has been removed from IntelliCommands RC6. The new changes should and will
satisfy over 95% of the requirements.
- “Create Target Method” now only works if you run it against a declared event or
Delegate inside of Type Definitions. The popup window to select a delegate is no
longer supported in RC6. However in the next release I intend to enhance the usability
of this command.
Breaking Changes:
- The addin has been renamed to MojabSoftware.Addins.IntelliCommands.dll therefore
the license file needs to be renamed accordingly.
- The old configuration file is no longer valid due to the significant changes to
IntelliCommands. It also uses the new naming as the addin file. Please accept my
sincere apology if that causes any inconvenience.
|
|