Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CliOptions: clean-up determining when out is used #4268

Merged
merged 1 commit into from
Sep 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 4 additions & 10 deletions scalafmt-cli/src/main/scala/org/scalafmt/cli/CliOptions.scala
Original file line number Diff line number Diff line change
Expand Up @@ -36,20 +36,14 @@ object CliOptions {
* directly from main.
*/
def auto(parsed: CliOptions): CliOptions = {
val usesOut = parsed.stdIn || parsed.writeMode.usesOut
val auxOut =
if (
parsed.noStdErr ||
!(parsed.stdIn || parsed.writeMode == WriteMode.Stdout)
) parsed.common.out
else parsed.common.err
if (parsed.noStdErr || !usesOut) parsed.common.out else parsed.common.err

parsed.copy(common =
parsed.common.copy(
out = guardPrintStream(parsed.quiet && !parsed.stdIn)(parsed.common.out),
info = guardPrintStream(
parsed.stdIn || parsed.writeMode == WriteMode.Stdout ||
parsed.quiet || parsed.writeMode == WriteMode.List,
)(auxOut),
out = guardPrintStream(parsed.quiet && !usesOut)(parsed.common.out),
info = guardPrintStream(parsed.quiet || usesOut)(auxOut),
debug = guardPrintStream(parsed.quiet)(
if (parsed.debug) auxOut else parsed.common.debug,
),
Expand Down
20 changes: 15 additions & 5 deletions scalafmt-cli/src/main/scala/org/scalafmt/cli/WriteMode.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,25 @@ package org.scalafmt.cli
* - Stdout: Print the formatted file to Stdout (leaving the original file
* untouched)
*/
sealed trait WriteMode
sealed trait WriteMode {
val usesOut: Boolean
}

object WriteMode {

case object Override extends WriteMode
case object Override extends WriteMode {
val usesOut: Boolean = false
}

case object Stdout extends WriteMode
case object Stdout extends WriteMode {
val usesOut: Boolean = true
}

case object List extends WriteMode
case object List extends WriteMode {
val usesOut: Boolean = true
}

case object Test extends WriteMode
case object Test extends WriteMode {
val usesOut: Boolean = false
}
}
Loading