Resharper:删除括号前的空行

时间:2015-10-20 10:12:39

标签: c# visual-studio-2015 resharper

在Resharper 9.2和Visual Studio 14(2015)中,我想在清除代码(Ctrl + E,Ctrl + C)上的左括号前删除空白行。我找不到这个设置。这是一些示例代码。

我有什么:

namespace TestApp.Test

{
    public class Program

    {
        private string _foo;

        private string _bar;

        public string Qux { get; set; }

        private Program()

        {
        }
    }
}

我想要的是什么:

namespace TestApp.Test
{
    public class Program
    {
        private string _foo;

        private string _bar;

        public string Qux { get; set; }

        private Program()
        {
        }
    }
}

选项'删除空白行" {"之前"}"在声明'和'删除空白行" {"之前"}"在代码'不适合这个问题。

当我设置选项'在声明中保留最大空行'到' 0'删除空行,但也删除字段和属性之间的所有空行。因此,我想将其保留在' 1'

我不想要的东西:

namespace TestApp.Test
{
    public class Program
    {
        private string _foo;
        private string _bar;
        public string Qux { get; set; }
        private Program()
        {
        }
    }
}

3 个答案:

答案 0 :(得分:3)

  1. 转到 Resharper->选项 - >代码编辑 - > C# - >格式化样式 - >空白行
  2. 设置'在声明中保留最大空行'到' 0'
  3. 设置'围绕单行字段'到' 1'
  4. 享受

答案 1 :(得分:1)

使用Visual Studio 2017

当前文档中的使用快捷方式

  • 打开工具> 选项,或按 Alt + T + O < / li>
  • 环境标签下> 键盘
  • 搜索“ DeleteBlank ”,然后选择Edit.DeleteBlankLines
  • 添加新的快捷方式,例如 Ctrl + D Ctrl + E
  • 分配> 确定

选择所有文本并点击快捷方式

enter image description here

当前项目整个解决方案中使用正则表达式

如上所述here

Visual Studio可以使用正则表达式在替换操作中删除空行。

  • 单击 Ctrl - H (快速替换)

  • 勾选“使用正则表达式”或按 Alt + E

  • 在“查找”中指定^\s*$\n|\r

  • 在“替换”框中删除所有内容。

  • 单击“全部替换”或 Alt + A

enter image description here

答案 2 :(得分:0)

这个问题也影响了我,我要做的就是先做一个简单的正则表达式查找和替换,然后再进行ReSharper代码清理。

查找

(\r?\n)(\r?\n)*(?([^\r\n])\s)*([{])

替换

$2$3

这不是一个真正的答案,我会把它放在评论中,但我还不允许我发表评论。所以我完全希望这个被标记和删除。希望你先看到它,因为当你找到真正的解决方案时,我真的很想你的反馈!