2012-07-31 21 views
37

所以,這樣的:ReSharper的換行和包裝

cmd = new OdbcCommand(string.Format(@" 
SELECT * 
    FROM Bobby_Tables 
WHERE Name = {0}", "Little Bobby Drop Tables"), odbcConnection); 

被格式化爲:

cmd = 
     new OdbcCommand( 
      string.Format( 
        @" 
SELECT * 
    FROM Bobby_Tables 
WHERE Name = {0}", 
        "Little Bobby Drop Tables"), odbcConnection); 

我看每個換行和包裝的選擇,但我一直沒能夠找到儘可能長時間保持同一線條的東西。我假設我錯過了正確的選擇。我的Right margin (columns)選項設置爲100,這是很大的。

問題:有沒有辦法讓它看起來像原始的,並且仍然能夠在其他需要包裝的東西上進行智能格式化?

我可以手動把

cmd = new OdbcCommand(string.Format (
     @" 

回到了第一線,它會高興地離開下一行的逐字字符串。我想這是一個正確的妥協。

+1

嘗試在Code Editing => C#=>格式化樣式=>換行和換行中設置「保留現有換行符」屬性爲true。您還可以縮短「右邊距(列)」屬性,使右邊距變小,因此「如果長度變長」不會經常發生。 – 2012-07-31 16:31:25

+0

你能詳細說明你想要達到的目標嗎?你想讓Resharper把Select語句全部帶回單行嗎?如果是這樣,我認爲它不會那樣做。 Resharper通常會嘗試重新格式化代碼並將其分解以提高可讀性。 – Gambit 2012-07-31 16:50:16

+0

愛xkcd參考。 「也許你會學會清理你的sql」。 – 2013-11-28 09:57:08

回答

83

我想你的問題是第一行在三個中斷。這是因爲在ReSharper 7.0中修復的錯誤http://youtrack.jetbrains.com/issue/RSRP-288271。您應該考慮升級或關閉選項ReSharper | Options -> Code Editing | C# | Formatting style | Line breaks and wrapping -> LineWrapping | Wrap long lines

+0

嗨@Dmitry Osinovskiy,也許你對我在使用ReSharper 6.1時遇到的問題有了線索?如果可以的話,請看看我的問題:http://stackoverflow.com/questions/11622581/resharper-unit-test-runner-ignores-deployment-items-configuration – devundef 2012-07-31 17:58:06

+0

我們仍然在6.1。我使用的是100的右邊距,所以它應該很多。 看起來好像是這樣:「哦,這個新的OdbcCommand()太長了,把它放在一個新的行上哦,這個string.Format()太長了,把它放在一個新行上。太長了,把它放在一個新的線上。「 至少,這就是我想象算法的工作原理。 – ryancerium 2012-07-31 21:52:28

+0

@devundef不幸的是我沒有線索。但你總是可以試着問他https://twitter.com/fergard/status/228271877393633280 – 2012-07-31 23:31:00