2

Object Initializer を使用してオブジェクトを初期化しようとすると、ReSharper は常に大量の空白を挿入します。

public class Bar
{
    public void Adam()
    {
        var foo = new Foo
                      {
                          First = "yes",
                          Second                              = 
                      };
    }
}

初期化子の後に文字を置き換える;と、コードは次のようにフォーマットされます。

public class Bar
{
    public void Adam()
    {
        var foo = new Foo
                      {
                          First = "yes",
                          Second = "no"
                      };
    }
}

問題を再現するには、次の手順に従います (Piers Myers に感謝します)。

  • たとえば、左中括弧の後のインデント位置にカーソルを置きます (空の行では、カーソルを行の最初または Resharper/VS が使用すべきと考えるインデント レベルに置くことができます)。
  • CTRL+スペース、CTRL+ALT+スペース、またはSHIFT+ALT+スペースを押します。カーソルの前にスペースを挿入して埋めますが、カーソルの後に同じ量のスペースも追加しますが、これは正しくありません。

最初に生成された空白の原因を知っている人はいますか? おそらく、どの設定を間違って構成したのでしょうか?

4

1 に答える 1

0

この問題は、次のインストールで確認されています。

  • Resharper 5.1 VS2008 (ピアーズ マイヤーズ作)
  • Resharper 6.1 VS2008 (私による)

ただし、これらのインストールでは問題が解決したようです。

  • Resharper 6.1 VS2010 (ピアーズ マイヤーズ作)
  • Resharper 7.0EAP VS012 (私による)

したがって、VS2008 IDE と組み合わせた ReSharper のバグのようです。

于 2012-06-18T19:10:43.750 に答える