2016-05-24 37 views
3

例如命令sbt "inspect tree clean"如何讓SBT不截斷其輸出?

這會將其輸出(與..)截斷爲終端寬度,如果重定向到文件則截斷40個字符。

C:\dev>sbt "inspect tree clean" 
[info] Loading project definition from C:\dev\project 
[info] Set current project to dev (in build file:/C:/dev/) 
[info] *:clean = Task[Unit] 
[info] +-*:clean::streams = Task[sb.. 
[info] | +-*/*:streamsManager = Tas.. 

如何讓它打印出整條線而不會截斷?我在scala-sbt.org搜索了文檔,但找不到任何相關的內容。

我在Windows上使用sbt 0.13.8。

+0

我相信這是'檢查tree'捨去它的輸出,而不是SBT。但是,這對問題沒有多大幫助。 – Haspemulator

回答

2

顯然,你不能。下面是SBT的相關代碼:https://github.com/sbt/sbt/blob/0.13/main/src/main/scala/sbt/SettingGraph.scala#L58

相關部分是:

val defaultWidth = 40 
val maxColumn = math.max(JLine.usingTerminal(_.getWidth), defaultWidth) - 8 

所以在交互模式下你得到你的終端的寬度 - 8,在標準輸出你會得到32個字符。我沒有看到它可以配置的任何地方,所以最好的辦法是在非常寬的終端窗口中運行它。 :)

編輯:正如我在評論中寫的,我已經提交了SBT的PR,使得該值可以通過設置進行配置。現在,等待超過1年,這個設置最終成爲SBT 1.0的一部分。直接在SBT控制檯

asciiGraphWidth := <some big enough number> 

或執行此命令:爲了提高輸出寬度,您可以添加下面一行在你的build.sbt

set asciiGraphWidth := <some big enough number> 
+0

那真的很煩人。我有兩臺寬屏顯示器,一些線路仍然足夠長以至於被截斷。 – OrangeDog

+0

也許在Github上爲他們創建一個問題?我肯定看到這個長度的好處是可配置的,特別是在非交互模式下。 – Haspemulator

+1

@OrangeDog FWIW,我向他們發送了一個拉請求,它使最大寬度可配置:https://github.com/sbt/sbt/pull/2633。它在那裏掛了幾天沒有太多進展。如果你想要更快,請考慮對公關發表評論/投票。 – Haspemulator

1

在SBT 1.0.0或更高版本,你可以運行:

sbt 'set asciiGraphWidth := 10000' 'inspect tree clean'