2013-12-11 52 views
27

當我自動格式ReSharper的CTRL + ALT + SHIFT + F超過最大行長度線(在我的情況說,這是80個字符),我得到如下:如何在長行返回關鍵字後停止換行符?

return 
     View(new ViewModel 
     { 
      Identifier = identifier, 
      Files = service.AllFiles() 
     }); 

但我真正想要的是它沒有「返回」關鍵字後包(即沒有對一條直線上的自身return關鍵字),像這樣:

return View(new ViewModel 
    { 
     Identifier = identifier, 
     Files = service.AllFiles() 
    }); 

有誰知道如何「配置」 ReSharper的,使這個發生? :)

這裏是另外一個例子,這裏就是我現在看到的:

return 
     repository.Session.CreateCriteria(typeof(SomeType)) 
        .Add(Expression.Eq("Identifier", identifier)) 
        .UniqueResult<SomeType>(); 

當我真的想看到:

return repository.Session.CreateCriteria(typeof(SomeType)) 
        .Add(Expression.Eq("Identifier", identifier)) 
        .UniqueResult<SomeType>(); 

UPDATE:

這裏是「斬永遠「:

return View(new OrganisationFileLoadViewModel 
    { 
     Identifier = identifier, 
     AllExistingOrganisationFiles = nmdsOrganisationFileLoadService.AllNMDSOrganisationFiles() 
    }); 

這裏被 「砍如果長」:

return 
     View(new OrganisationFileLoadViewModel 
     { 
      Identifier = identifier, 
      AllExistingOrganisationFiles = nmdsOrganisationFileLoadService.AllNMDSOrganisationFiles() 
     }); 
+0

你有沒有向JetBrains報告這個bug? –

+0

我很高興,如果它絕對是一個錯誤,而不只是一個設置,我有不正確的...? –

+1

這絕對是一個錯誤。 –

回答

34

Resharper -> Options -> (Code Editing) C# -> Formatting Style -> Line Breaks and Wrapping

有很多的對換行設置。 Wrap long lines的默認值通常是120個字符。這可能會觸發你的休息,因爲你設置爲80或者Resharper 8.0可能有一個更新的選項可供選擇。上面的路徑是7.0,但我相信它與8.0相同或至少相似。

好的是,他們向你展示了你所做的改變的例子,所以你不必馬上測試它。

+1

我正在尋找一個選項,以阻止R#放置「返回」關鍵字在自己的一條線上(如我上面的示例所示)。我在你指的部分找不到該選項。 –

+1

這隻會使問題出現的可能性降低。它不能解決它。 ReSharper將在120個字符後破解,但很長的一行仍然會在尷尬的地方破裂。 – siride

+0

另外,我正在包裝150個字符(適合在我的1920x1200屏幕上用大字體很好),但我當然還是偶爾換行,我發現自己手動引入中間變量只是爲了避免在R#中包裝「垃圾」這是可怕的,我恨我自己這樣做... –

2

沒有特殊選項可以將「返回後包裝」關閉。

1)我無法再現類似的代碼格式,如第一個代碼片段所示。但是,我建議您嘗試將此設置更改爲「Simple Wrap」: ReSharper | Options | Code Editing | C# | Formatting Style | Line Breaks and Wrapping | Line Wrapping | Wrap invocation arguments

2)在我的情況下,以下更改可以幫助我:ReSharper | Options | Code Editing | C# | Formatting Style | Line Breaks and Wrapping | Line Wrapping | Wrap chained method calls | Select "Chop always"

+0

我已經將它們全部更改爲「簡單包裝」,它沒有修復返回後的中斷... –

+0

然後,我也將它們全部改回爲「即使長時間砍」也沒有幫助(返回仍然本身就是一條線)。 –

+0

然後,當我去「總是砍」我得到正確的行爲(即它並沒有把它自己的行回報)! #WINNING,但是然後我所有的代碼看起來很糟糕,因爲它是_always_ chopping,這使得應該是一個小型鏈式方法調用或對象/集合初始值設定項(即應該適合一行)佔用3-4行,不必要的... –