Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Trying to suppress StyleCop message SA1513:ClosingCurlyBracketMustBeFollowedByBlankLine

Tags:

c#

stylecop

I am trying to suppress the following StyleCop message for a specific property:

SA1513: Statements or elements wrapped in curly brackets must be followed by a blank line.

I am trying to do the following, but it doesn't seem to work:

    [SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1513:ClosingCurlyBracketMustBeFollowedByBlankLine", Justification = "There are no issues with this code")]
    public string CustomerId
    {
        get
        {
            return this.GetProperty(CustomerIdProperty);
        }
        set
        {
            if (this.IsNew)
            {
                this.SetProperty(CustomerIdProperty, value);
            }
            else
            {
                throw new ReadOnlyException("Id value can only be changed for a new record.");
            }
        }
    }

Am I just doing something wrong? Or is this just not possible? It's a good rule, just not valid in my case for a property.

Update

Tried switching from DocumentationRules to LayoutRules ... still not suppressing.

    [DataObjectField(true, false)]
    [SuppressMessage("Microsoft.StyleCop.CSharp.LayoutRules", "SA1513:ClosingCurlyBracketMustBeFollowedByBlankLine", Justification = "There are no issues with this code")]
    public string CustomerId
    {
        get
        {
            return this.GetProperty(CustomerIdProperty);
        }
        set
        {
            if (this.IsNew)
            {
                this.SetProperty(CustomerIdProperty, value);
            }
            else
            {
                throw new ReadOnlyException("Id value can only be changed for a new record.");
            }
        }
    }
like image 280
mattruma Avatar asked Apr 10 '10 15:04

mattruma


1 Answers

I think this might be a problem with StyleCop. Which version do you have installed? This page states that:

Starting with StyleCop 4.3.2, it is possible to suppress the reporting of rule violations by adding suppression attributes within the source code.

I've just found that I can't suppress any messages. The installer I used just gives the version as 4.3. The latest version on the Codeplex is 4.4.0.0. Make sure you have that version installed.

Update

I've been doing some checking and I can suppress DocumentationRules:

    [SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules",
                     "SA1600:ElementsMustBeDocumented",
                     Justification = "Reviewed. Suppression is OK here.")]

but not SpacingRules or LayoutRules. However, nothing I've found indicates why this should be the case.

like image 70
ChrisF Avatar answered Sep 29 '22 20:09

ChrisF