どのようにスコープキーをプログラムで参照できますか?私。たとえば、 scalafmt :: test?sbtプログラムでタスクスコープを解決する
コンテキスト:neo-sbt-scalafmtは、ソースをフォーマットするTaskKey scalafmtを定義しますが、ソースが期待されるフォーマットに一致するかどうかをチェックするtest(https://github.com/lucidsoftware/neo-sbt-scalafmt/blob/master/sbt-scalafmt/src/main/scala/com/lucidchart/sbt/scalafmt/ScalafmtCorePlugin.scala#L143)というスコープも定義します。
SettingKeyによっては、TaskKey scalaFmtがコンパイルされる前に呼び出されます。代わりにscalafmt :: testを呼び出す新しいSettingKeyを導入したいと思います。以下はコンパイルされますが、scalafmt :: testではなく、常にscalafmtが実行されます。
if (scalafmtOnCompile.value) scalafmt in resolvedScoped.value.scope
else if (scalafmtTestOnCompile.value) (test in scalafmt) in resolvedScoped.value.scope
私は、SBTのギッターチャネルでこの質問をしたし、ちょうど次の人のためにここでそれを文書化します。 「既存のスコープを取るが、scalafmtタスクスコープにそれを作る、それは私が使用するテストの範囲だ」答えを提供するためのデールWijnandに
賞賛を:基本的に意味