1

resharperでコードを次のようにインデントしたいと思います。

var modification = shortUrlIndexCollection.FindAndModify
(
    Query.Or
    (
        Query.And
        (
            Query.EQ("_id", "Index"),
            Query.EQ("LockId", Guid.Empty)
        ),
        Query.LT("UnlockOn", now)
    ),
    SortBy
        .Null,
    Update
        .Set("LockId", guid)
        .Set("UnlockOn", now + reserveDuration),
    true
);

しかし、代わりに次のようにコードをフォーマットします。

var modification = shortUrlIndexCollection.FindAndModify
    (
        Query.Or
            (
                Query.And
                    (
                        Query.EQ("_id", "Index"),
                        Query.EQ("LockId", Guid.Empty)
                    ),
                Query.LT("UnlockOn", now)
            ),
        SortBy
            .Null,
        Update
            .Set("LockId", guid)
            .Set("UnlockOn", now + reserveDuration),
        true
    );

Resharperを使用したカスタムブレースフォーマットによると、私はすでにこのcontinuous line indent multiplierオプションを試しましたが、間違った結果が得られます...

4

2 に答える 2

4

Resharper 7.1を試してみてください。これにより、連鎖メソッドのインデントが修正されました。

私のstylecop設定で試してみると、フォーマットは次のようになります。

shortUrlIndexCollection.FindAndModify(
                Query.Or(
                    Query.And(Query.EQ("_id", "Index"), Query.EQ("LockId", Guid.Empty)), Query.LT("UnlockOn", now)),
                SortBy.Null,
                Update.Set("LockId", guid).Set("UnlockOn", now + reserveDuration),
                true);

あなたが望むものではありません。

于 2012-11-14T21:15:35.977 に答える
2

ReSharper 7.1以前では、フォーマットする方法や希望する方法はありません()8.0で新しいインデントシステムの実装に取り​​組んでいます。これにより、()と[]のレイアウトをより適切に制御できるようになります。

于 2012-11-15T06:59:19.477 に答える