Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code is formatted inside a ranged ignore #846

Closed
Billuc opened this issue Mar 7, 2023 · 3 comments · Fixed by #854
Closed

Code is formatted inside a ranged ignore #846

Billuc opened this issue Mar 7, 2023 · 3 comments · Fixed by #854
Labels
Milestone

Comments

@Billuc
Copy link

Billuc commented Mar 7, 2023

Hi, I started using Csharpier recently and I really like it !
However, I stumbled upon a case where I asked Csharpier to ignore some code, but it somehow added newlines in it.
I was able to reproduce it in the playground, so I don't think it is related to my setup.
Am I missing something ?

Csharpier version : 0.22.1 (dotnet-csharpier) and 1.3.6 (VSCode extension)
Environment : Ubuntu 22.04, Dotnet 5 (C# 9)

Input code :

public class ClassName {
    public string ShortPropertyName {
        get;
        set; 
    }

    public void LongUglyMethod(string longParameter1, string longParameter2, string longParameter3) { 
    
        // csharpier-ignore-start
        var packet = new List<byte>();
        packet.Add(0x0f); packet.Add(0x00);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0x40); packet.Add(0x1f);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0xd0); packet.Add(0x07);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0x1c); packet.Add(0x00);
        packet.Add(0x16); packet.Add(0x00);
        packet.Add(0x05); packet.Add(0x00);
        packet.Add(0x32); packet.Add(0x00);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0xb3); packet.Add(0x00);
        packet.Add(0x91); packet.Add(0x01);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0x2b); packet.Add(0x00);
        packet.Add(0x07); packet.Add(0x00);
        packet.Add(0x10); packet.Add(0x0e);
        // csharpier-ignore-end
    }
}

Expected output :

public class ClassName 
{
    public string ShortPropertyName { get; set; }

    public void LongUglyMethod(string longParameter1, string longParameter2, string longParameter3)
    {
        // csharpier-ignore-start
        var packet = new List<byte>();
        packet.Add(0x0f); packet.Add(0x00);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0x40); packet.Add(0x1f);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0xd0); packet.Add(0x07);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0x1c); packet.Add(0x00);
        packet.Add(0x16); packet.Add(0x00);
        packet.Add(0x05); packet.Add(0x00);
        packet.Add(0x32); packet.Add(0x00);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0xb3); packet.Add(0x00);
        packet.Add(0x91); packet.Add(0x01);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0x00); packet.Add(0x00);
        packet.Add(0x2b); packet.Add(0x00);
        packet.Add(0x07); packet.Add(0x00);
        packet.Add(0x10); packet.Add(0x0e);
        // csharpier-ignore-end
    }
}

Actual output :

public class ClassName
{
    public string ShortPropertyName { get; set; }

    public void LongUglyMethod(string longParameter1, string longParameter2, string longParameter3)
    {
        // csharpier-ignore-start
        var packet = new List<byte>();
        packet.Add(0x0f);
packet.Add(0x00);
        packet.Add(0x00);
packet.Add(0x00);
        packet.Add(0x40);
packet.Add(0x1f);
        packet.Add(0x00);
packet.Add(0x00);
        packet.Add(0xd0);
packet.Add(0x07);
        packet.Add(0x00);
packet.Add(0x00);
        packet.Add(0x1c);
packet.Add(0x00);
        packet.Add(0x16);
packet.Add(0x00);
        packet.Add(0x05);
packet.Add(0x00);
        packet.Add(0x32);
packet.Add(0x00);
        packet.Add(0x00);
packet.Add(0x00);
        packet.Add(0x00);
packet.Add(0x00);
        packet.Add(0xb3);
packet.Add(0x00);
        packet.Add(0x91);
packet.Add(0x01);
        packet.Add(0x00);
packet.Add(0x00);
        packet.Add(0x00);
packet.Add(0x00);
        packet.Add(0x2b);
packet.Add(0x00);
        packet.Add(0x07);
packet.Add(0x00);
        packet.Add(0x10);
packet.Add(0x0e);
        // csharpier-ignore-end
    }
}
@belav
Copy link
Owner

belav commented Mar 7, 2023

It took me a bit, but I can see what is happening now. The ranged ignore doesn't play nice with multiple statements on a line. You can see by adding extra whitespace like so, which it leaves alone.

public class ClassName
{
    public void MethodName()
    {
        // csharpier-ignore-start
        var packet =              new List<byte>();
        packet.Add(0x0f); packet.Add(0x00);
        // csharpier-ignore-end
    }
}

@belav belav added this to the 0.24.0 milestone Mar 7, 2023
@belav
Copy link
Owner

belav commented Mar 7, 2023

This could be used as a workaround for now.

public class ClassName
{
    public void MethodName()
    {
        // csharpier-ignore-start
        {
        var packet =              new List<byte>();
        packet.Add(0x0f); packet.Add(0x00);
        }
        // csharpier-ignore-end
    }
}

@Billuc
Copy link
Author

Billuc commented Mar 8, 2023

Hi, thanks for the workaround.
I popped the declaration out of the ranged ignore and it works fine.
For now, this is good enough for me, thanks !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants