2010-06-10  Sebastien Pouliot  <sebastien@ximian.com>

	* UseCorrectPrefixRule.cs: Make sure types do not start with an I
	unless acronyms are used

2010-06-07  Sebastien Pouliot  <sebastien@ximian.com>

	* ParameterNamesShouldMatchOverridenMethodRule.cs: Avoid string 
	allocations when comparing strings. Saves more than 400kb on
	self-test

2010-06-05  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidDeepNamespaceHierarchyRule.cs:
	* DetectNonAlphaNumericsInTypeNamesRule.cs:
	* UseCorrectCasingRule.cs:
	* UsePreferredTermsRule.cs:
		Use a unique NamespaceDefinition (not a new one each time)
		when reporting a defect on a namespace

2010-06-04  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidRedundancyInMethodNameRule.cs: Apply AvoidUnnecessarySpecializationRule

2010-04-17  Sebastien Pouliot  <sebastien@ximian.com>

	* UseCorrectCasingRule.cs: With newer CSC (e.g. 10.0) we cannot 
	assume the event accessor to be auto-generated by the presence 
	of IsSynchronized. Fix unit test when compiled with CSC

2010-01-30  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidRedundancyInMethodNameRule.cs: Apply AvoidRepetitiveCallsTo
	PropertiesRule
	* AvoidRedundancyInTypeNameRule.cs: Apply AvoidRepetitiveCallsTo
	PropertiesRule
	* AvoidTypeInterfaceInconsistencyRule.cs: Apply AvoidRepetitive
	CallsToPropertiesRule
	* DoNotPrefixEventsWithAfterOrBeforeRule.cs: Apply AvoidRepetitive
	CallsToPropertiesRule
	* ParameterNamesShouldMatchOverridenMethodRule.cs: Apply Avoid
	RepetitiveCallsTo: Apply AvoidRepetitiveCallsTo
	PropertiesRulePropertiesRule
	* UseCorrectCasingRule.cs: Apply AvoidRepetitiveCallsToPropertiesRule
	* UseCorrectPrefixRule.cs: Apply AvoidRepetitiveCallsToPropertiesRule
	* UseCorrectSuffixRule.cs: Apply PreferEmptyInstanceOverNullRule

2010-01-17  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidTypeInterfaceInconsistencyRule.cs: Avoid boxing when 
	concatenating strings
	* UseCorrectCasingRule.cs: Avoid boxing when concatenating 
	strings

2010-01-01  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidRedundancyInMethodNameRule.cs: Use new IsRef rock

2009-08-30  Jesse Jones  <jesjones@mindspring.com>

	* DoNotUseReservedInEnumValueNamesRule.cs, AvoidDeepNamespaceHierarchyRule.cs
	ParameterNamesShouldMatchOverridenMethodRule.cs: Edited the rule descriptions.

2009-07-28  Cedric Vivier  <cedricv@neonux.com>

	UseCorrectSuffixRule.cs: Lower the confidence when the base type itself does not use correct suffix
	AND current type does not have its own defect (e.g by implementing an suffix-requiring interface).

2009-07-05  Jesse Jones  <jesjones@mindspring.com>

	* *Rule.cs: Edited most of the rule descriptions.

2009-03-23  Sebastien Pouliot  <sebastien@ximian.com> 

	* AvoidTypeInterfaceInconsistencyRule.cs: Document as added in 2.4
	* UseCorrectCasingRule.cs: Fix suggestion for uppercased namespaces

2008-12-26  Cedric Vivier  <cedricv@neonux.com>

	* UsePreferredTermsRule.cs: Fix false positives when term is part of
	a larger word. Improve text. Use CheckIdentifier for namespaces too.

2008-12-24  Sebastien Pouliot  <sebastien@ximian.com>

	* DetectNonAlphaNumericsInTypeNamesRule.cs: Replace IndexOf("_")
	with IndexOf('_') since it's faster (self-test) but probably not much
	in this case since we were already using StringComparison.Ordinal.

2008-12-23  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidTypeInterfaceInconsistencyRule.cs: New. Rule that checks
	if typpe Foo implements interface IFoo when both exists in the same 
	namespace of the same assembly.
	* Makefile.am: Add new rule and tests to the build

2008-11-30  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidRedundancyInMethodNameRule.cs: Use HasParameters
	* DetectNonAlphaNumericsInTypeNamesRule.cs: Use HasFields and 
	HasParameters
	* DoNotPrefixEventsWithAfterOrBeforeRule.cs: Use HasEvents
	* ParameterNamesShouldMatchOverridenMethodRule.cs: Use HasParameters
	* UseCorrectCasingRule.cs: Use HasParameters
	* UseCorrectPrefixRule.cs: Use HasGenericParameters
	* UseCorrectSuffixRule.cs: Use HasGenericParameters
	* UsePreferredTermsRule.cs: Use HasFields

2008-11-24  Sebastien Pouliot  <sebastien@ximian.com>

	* DetectNonAlphaNumericsInTypeNamesRule.cs: Move IsEnum check 
	outside the loop.

2008-11-20  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidRedundancyInMethodNameRule.cs: Specify StringComparison.Ordinal
	when calling String.[Start|End]sWith. Use the new Exists method
	from NamespaceEngine.
	* AvoidRedundancyInTypeNameRule.cs: Specify StringComparison.Ordinal
	when calling String.[Start|End]sWith.
	* DoNotPrefixEventsWithAfterOrBeforeRule.cs: Specify 
	StringComparison.Ordinal when calling String.StartsWith.
	* DoNotUseReservedInEnumValueNamesRule.cs: Specify StringComparison.
	Ordinal when calling String.IndexOf.
	* UseCorrectSuffixRule.cs: Specify StringComparison.Ordinal when 
	calling String.EndsWith.

2008-11-15  Jesse Jones  <jesjones@mindspring.com>

	* AvoidDeepNamespaceHierarchyRule.cs: Fixed so unit test works with
	checked math.

2008-11-08  Cedric Vivier  <cedricv@neonux.com>

	* ParameterNamesShouldMatchOverridenMethodRule.cs: Do not issue 
	false positives on macro-generated boo code.

2008-11-08  Cedric Vivier  <cedricv@neonux.com>

	* ParameterNamesShouldMatchOverridenMethodRule.cs: DoesNotApply if no parameter.

2008-11-08  Cedric Vivier  <cedricv@neonux.com>

	* AvoidRedundancyInMethodNameRule.cs: Change wording to be consistent
	with AvoidRedundancyInTypeNameRule.

2008-11-08  Cedric Vivier  <cedricv@neonux.com>

	* AvoidRedundancyInTypeNameRule.cs: New.
	This rule checks if a type is prefixed with the last component of its
	enclosing namespace, and that removing the prefix would not cause
	undesirable ambiguity with its base type or a type from a parent namespace.
	If possible, removing the prefix from the type name usually makes an API less
	verbose and more autocompletion-friendly.

2008-11-07  Alan McGovern  <amcgovern@novell.com>

	* Makefile.am:
	* Gendarme.Rules.Naming.mdp:
	* Gendarme.Rules.Naming.csproj: Activate makefile integration for all
	the rules projects. Remove the old mdp files as they are no longer
	needed.

2008-11-03  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidRedundancyInMethodNameRule.cs: Change IsTypeFromAlienNamespace
	to static.

2008-11-03  Cedric Vivier  <cedricv@neonux.com>

	* AvoidRedundancyInMethodNameRule.cs: New.
	This rule checks if a method is named against its first parameter's type.
	Usually removing that type name from the method name makes an API less
	verbose, easier to learn, and more future-proof.

2008-10-25  Sebastien Pouliot  <sebastien@ximian.com>

	* EnumNotEndsWithEnumOrFlagsSuffixRule.cs: Removed since its logic
	is now covered inside UseCorrectSuffixRule.
	* UseCorrectSuffixRule.cs: Now checks if a suffix is misused, not 
	just missing, on a type.
	* Makefile.am: Remove EnumNotEndsWithEnumOrFlagsSuffixRule rule and
	tests source from build.

2008-10-25  Sebastien Pouliot  <sebastien@ximian.com> 

	* EnumNotEndsWithEnumOrFlagsSuffixRule.cs: Add missing XML doc.
	* UseCorrectPrefixRule.cs: Add prefix check for generic parameter
	types.

2008-10-25  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidDeepNamespaceHierarchyRule.cs, 
	DetectNonAlphaNumericsInTypeNamesRule.cs, UseCorrectCasingRule.cs,
	UsePreferredTermsRule.cs: Rename Namespace to NamespaceDefinition.

2008-10-21  Sebastien Pouliot  <sebastien@ximian.com>

	* ParameterNamesShouldMatchOverridenMethodRule.cs: Avoid 
	specialization of SignatureMatches parameters (self-test).

2008-10-21  Néstor Salceda  <nestor.salceda@gmail.com>

	* Makefile.am: Removed common stuff in order to reduce duplication with
	other Makefiles.

2008-10-19  Néstor Salceda  <nestor.salceda@gmail.com>

	* Makefile.am: Added support for generating the documentation files to
	the build process.

2008-10-19  Néstor Salceda  <nestor.salceda@gmail.com>

	* doc/index.xml, doc/ns-Gendarme.Rules.Naming.xml,
	doc/Gendarme.Rules.Naming: With the new code in the Makefiles we don't
	need to keep the documentation files in the repository.

2008-10-19  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidDeepNamespaceHierarchyRule.cs: Use Namespace.IsSpecialized
	instead of our own list. Throw the right exception message (self-test)

2008-10-17  Sebastien Pouliot  <sebastien@ximian.com>

	* AvoidDeepNamespaceHierarchyRule.cs: New. Rule to check is a 
	namespace hierarchy gets longer than four elements, unless the last
	one is a well-known specialization.
	* DetectNonAlphaNumericsInTypeNamesRule.cs: Rule renamed to
	AvoidNonAlphanumericIdentifierRule. It now applies to assembly 
	names (it implements IAssemblyRule), namespaces (using the 
	NamespaceEngine) and also to fields. Added XML documentation
	and [FxCopCompatibility] attribute.
	* DoNotPrefixEventsWithAfterOrBeforeRule.cs: Add XML documentation
	and [FxCopCompatibility] attribute. Use shorter overload for 
	Runner.Report. Ignore enums and delegates.
	* DoNotPrefixValuesWithEnumNameRule.cs: Add XML documentation
	and [FxCopCompatibility] attribute. Use shorter overload for 
	Runner.Report.
	* DoNotUseReservedInEnumValueNamesRule.cs: Add XML documentation
	and [FxCopCompatibility] attribute. Use shorter overload for 
	Runner.Report.
	* ParameterNamesShouldMatchOverridenMethodRule.cs: Add XML 
	documentation and [FxCopCompatibility] attribute.
	* UseCorrectCasingRule.cs: Change the way namespace are handled
	by using the new NamespaceEngine. Add XML documentation 
	and [FxCopCompatibility] attribute.
	* UseCorrectPrefixRule.cs: Add XML documentation and 
	two [FxCopCompatibility] attribute.
	* UseCorrectSuffixRule.cs: Add XML documentation and 
	two [FxCopCompatibility] attribute.
	* UsePluralNameInEnumFlagsRule.cs: Add XML documentation 
	and [FxCopCompatibility] attribute. Use shorter overload for 
	Runner.Report.
	* UsePreferredTermsRule.cs: Rule now applies to assembly names (it
	implements IAssemblyRule), namespaces (using the NamespaceEngine) and
	also to fields. Updated the list of preferred terms. Added XML 
	documentation and [FxCopCompatibility] attribute.
	* UseSingularNameInEnumsUnlessAreFlagsRule.cs: Add XML 
	documentation. Use shorter overload for Runner.Report.

2008-10-15  Néstor Salceda  <nestor.salceda@gmail.com>

	* doc/: Initial import documentation for the rules which belongs to this
	category.

2008-08-28  Sebastien Pouliot  <sebastien@ximian.com>

	* UseCorrectCasingRule.cs: Simplify the rule a bit. Use a constant
	for MethodSemanticsAttributes (CheckMethod). Remove unneeded check
	for <Module> (now handled elsewhere) and unneeded case (3) for 
	namespaces.

2008-08-05  Peter Johanson  <peter@peterjohanson.com>

	* UseCorrectCasingRule.cs: The casing rule does not apply
	to add_ and remove_ methods generated by the compiler for
	private events.

2008-07-10  Sebastien Pouliot  <sebastien@ximian.com>

	* Makefile.am: Start using ../common.make

2008-07-08  Sebastien Pouliot  <sebastien@ximian.com>

	* ParameterNamesShouldMatchOverridenMethodRule.cs: Handle the case
	where Resolve returns null (cannot find the required assemblies)
	* Makefile.am: Rebuild if the framework has changed.

2008-05-11  Sebastien Pouliot  <sebastien@ximian.com>

	* DoNotPrefixEventsWithAfterOrBeforeRule.cs: New. Rule to check
	if event names starts with either After of Before prefixes.

2008-05-02  Sebastien Pouliot  <sebastien@ximian.com>

	* UseCorrectSuffixRule.cs: Use TryGetValue to avoid access to the 
	Dictionary. Refactor textual report outside the CheckType (it's 
	larger) and avoid reporting twice the first item.

2008-04-26  Nestor Salceda  <nestor.salceda@gmail.com>

	* ParameterNamesShouldMatchOverridenMethodRule.cs:  Remove a duplicated
	call to ReturnType.  

2008-04-26  Jb Evain  <jbevain@novell.com>

	* UseCorrectCasingRule.cs: check for proper namespace casing.
	Rules are as follows: if the namespace length is 1, we
	report an error, if it's 2, we check that all letters
	are properly cased, if it's 3, we check that all letters
	are not upper cased, and that we're pascal case otherwise.

2008-04-06  Sebastien Pouliot  <sebastien@ximian.com>

	* UseCorrectSuffixRule.cs: Allow the Set suffix for collections.

2008-03-19  Sebastien Pouliot  <sebastien@ximian.com>

	* UseCorrectSuffixRule.cs: Fix case where generics are used (since
	it affects the suffix of the type). Fix bug #372250

2008-03-16  Sebastien Pouliot  <sebastien@ximian.com>

	* UseCorrectCasingRule.cs: Ignore generated code. VS SWF designer
	can generate properties with bad cases (e.g. for resources).

2008-03-15  Sebastien Pouliot  <sebastien@ximian.com>

	* ParameterNamesShouldMatchOverridenMethodRule.cs: CSC anonymous 
	types don't follow this rule so we ignore code generated by the 
	compiler.
	* DetectNonAlphanumericInTypeNamesRule.cs: Rule does not apply 
	for interfaces used in COM interop.

2008-02-15  Sebastien Pouliot  <sebastien@ximian.com>

	* DetectNonAlphaNumericsInTypeNamesRule.cs
	* DoNotPrefixValuesWithEnumNameRule.cs
	* DoNotUseReservedInEnumValueNamesRule.cs
	* EnumNotEndsWithEnumOrFlagsSuffixRule.cs
	* ParameterNamesShouldMatchOverridenMethodRule.cs
	* UseCorrectCasingRule.cs
	* UseCorrectPrefixRule.cs
	* UseCorrectSuffixRule.cs
	* UsePluralNameInEnumFlagsRule.cs
	* UsePreferredTermsRule.cs
	* UseSingularNameInEnumsUnlessAreFlagsRule.cs:
		Update rules wrt framework changes.

2008-01-18  Sebastien Pouliot  <sebastien@ximian.com>

	* DetectNonAlphaNumericsInTypeNamesRule.cs: Add checks for generated
	code (to eliminate a bunch of false-positives).
	* NamingUtils.cs: Remove - replaced by rocks or changes in rules.
	* UseCorrectCasingRule.cs: Avoid creating MessageCollection unless 
	needed. Skip an intermediate string while reporting.
	* UseCorrectSuffixRule.cs: Add checks for generated code (to 
	eliminate a bunch of false-positives).
	* Makefile.am: Remove NamingUtils.cs from build.

2008-01-18  Sebastien Pouliot  <sebastien@ximian.com>

	* ParameterNamesShouldMatchOverridenMethodRule.cs: Change three
	methods to static (for better self-test results :)

2008-01-14  Sebastien Pouliot  <sebastien@ximian.com>

	* DoNotPrefixValuesWithEnumNameRule.cs: New. Rule that checks enums
	to see if it prefix it's values with the it's own name [Andreas 
	Noever]
	* DoNotUseReservedInEnumValueNamesRule.cs: New. Rule that check 
	enums to see if it has values containing the word "reserved" 
	[Andreas Noever]
	* ParameterNamesShouldMatchOverridenMethodRule.cs: New. Rule that
	check if overriden (or interface implementation) methods use the same
	parameter names as the original. [Andreas Noever]
	* Gendarme.Rules.Naming.mdp: Updated MonoDevelop project file.
	* Gendarme.Rules.Naming.xml.in: Updated descriptions.
	* Makefile.am: Updated Makefile for new rules/tests.

2008-01-11  Sebastien Pouliot  <sebastien@ximian.com>

	* DetectNonAlphaNumericsInTypeNamesRule.cs: Turn a method to static 
	and use new Location ctors.
	* EnumNotEndsWithEnumOrFlagsSuffixRule.cs: Use new Location ctors.
	* UseCorrectCasingRule.cs: Use new Location ctors.
	* UseCorrectPrefixRule.cs: Use new Location ctors.
	* UseCorrectSuffixRule.cs: Use new Location ctors.
	* UsePreferredTermsRule.cs: Use new Location ctors.

2008-01-05  Sebastien Pouliot  <sebastien@ximian.com>

	* EnumNotEndsWithEnumOrFlagsSuffixRule.cs: Use rocks to reduce code
	duplication.
	* UsePluralNameInEnumFlagsRule.cs: Use rocks to reduce code	
	duplication.
	* UseSingularNameInEnumsUnlessAreFlagsRule.cs: Use rocks to reduce 
	code duplication.
	* Makefile.am: Add linq to compiler options

2007-12-26  Sebastien Pouliot  <sebastien@ximian.com> 

	* AttributeEndsWithAttributeSuffixRule.cs: Deleted. The new rule
	UseCorrectSuffixTest is a superset of this rule.
	* Gendarme.Rules.Naming.mdp: Updated MonoDevelop project file.
	* Gendarme.Rules.Naming.xml.in: Updated descriptions.
	* Makefile.am: Updated Makefile for new rules/tests.
	* NamingUtils.cs: New. Common methods for naming rules.
	* UseCorrectCasingRule.cs: New. Rule to check correct casing. 
	From Daniel Abramov (GHOP).
	* UseCorrectPrefixRule.cs:New. Rule to check correct prefixes. 
	From Daniel Abramov (GHOP).
	* UseCorrectSuffixRule.cs:New. Rule to check correct suffixes. 
	From Daniel Abramov (GHOP).
	* UsePreferredTermsRule.cs:New. Rule to check use of preferred terms. 
	From Daniel Abramov (GHOP).

2007-12-20  Sebastien Pouliot  <sebastien@ximian.com> 

	* EnumNotEndsWithEnumOrFlagsSuffixRule.cs,
	* DetectNonAlphaNumericsInTypeNamesRule.cs,
	* UseSingularNameInEnumsUnlessAreFlagsRule.cs: Update message 
	strings. Patch from Daniel Abramov <ex@vingrad.ru>

2007-11-30  Nestor Salceda  <nestor.salceda@gmail.com>

	* EnumNotEndsWithEnumOrFlagsSuffixRule.cs: Avoid code duplicated
	violation when running self-test target.

2007-11-22  Sebastien Pouliot  <sebastien@ximian.com> 

	* DetectNonAlphaNumericsInTypeNamesRule.cs: IsPrivate is different
	than !IsPublic. Fix false positive reports about anonymous methods.

2007-11-22  Sebastien Pouliot  <sebastien@ximian.com>

	* AttributeEndsWithAttributeSuffixRule.cs: Don't create 
	MessageCollection unless we need to report an error/warning.
	* EnumNotEndsWithEnumOrFlagsSuffixRule.cs: Don't create 
	MessageCollection unless we need to report an error/warning.
	* UsePluralNameInEnumFlagsRule.cs: Don't create MessageCollection
	unless we need to report an error/warning.
	* UseSingularNameInEnumsUnlessAreFlagsRule.cs: Don't create 
	MessageCollection unless we need to report an error/warning.

2007-11-03  Nestor Salceda  <nestor.salceda@gmail.com>

	* Gendarme.Rules.Naming.xml.in: Added the Uri for
	DetectNonAlphaNumericsInTypeNamesRule.

2007-10-08  Sebastien Pouliot  <sebastien@ximian.com>

	* DetectNonAlphaNumericsInTypeNamesRule.cs: Rework rule to avoid 
	strings, dependency on string/enum position and creating a 
	MessageCollection unless we need one.

2007-10-07  Sebastien Pouliot  <sebastien@ximian.com>

	* DetectNonAlphaNumericsInTypeNamesRule.cs: New rule (Nidhi Rawal, GSoC 2007)
	* Gendarme.Rules.Naming.mdp: Update project file.
	* Gendarme.Rules.Naming.xml.in: Update rule descriptions.
	* Makefile.am: Add new rules/tests to build.

2007-10-04  Nestor Salceda  <nestor.salceda@gmail.com>

	* Gendarme.Rules.Naming.mdp: New.  Created MonoDevelop project file for the
	naming rules.

2007-09-29  Nestor Salceda  <nestor.salceda@gmail.com>

	* Gendarme.Rules.Naming.xml.in: Added Uri for the rules.

2007-09-29  Nestor Salceda  <nestor.salceda@gmail.com>

	* Gendarme.Rules.Naming.xml.in: Fixed error from copy and paste for the
	performance xml file.  The correct namespace is Gendarme.Rules.Naming.

2007-09-29  Nestor Salceda  <nestor.salceda@gmail.com>

	* UsePluralNameInFlagEnumsRule.cs,
	UsePluralNameInEnumFlagsRule.cs:  Rename 
	UsePluralNameInFlagEnumsRule.cs to UsePluralNameInEnumFlagsRule.cs
	because this file doesn't follow the coding guidelines.
	* Makefile.am: Change files to build the renamed rule.

2007-09-21  Nestor Salceda  <nestor.salceda@gmail.com>

	* AttributeEndsWithAttributeSuffixRule.cs:  Change cast to as operator
	for avoid two type tests in method body.

2007-09-21  Nestor Salceda  <nestor.salceda@gmail.com>

	* AttributeEndsWithAttributeSuffixRule.cs:  Fixed a
	NullReferenceException when the current type is System.Object.  Change
	cast to as operator for avoid two type tests.

2007-09-13  Nestor Salceda  <nestor.salceda@gmail.com>

	* Makefile.am: New.  Build Gendarme.Rules.Naming rules and tests.
	* Gendarme.Rules.Naming.xml.in: New.  Configuration for
	Gendarme.Rules.Naming.
	* EnumNotEndsWithEnumOrFlagsSuffixRule.cs,
	UsePluralNameInFlagEnumsRule.cs,
	UseSingularNameInEnumsUnlessAreFlagsRule.cs,
	AttributeEndsWithAttributeSuffixRule.cs:  New. Rules for check the
	naming conventions.

