Add color to error formatting (#746)

* Add color to error formatting

* Apply suggestions from code review

Co-authored-by: Daniel Chao <daniel.h.chao@gmail.com>

* Address reviewer comments

* Apply suggestions from code review

Co-authored-by: Daniel Chao <daniel.h.chao@gmail.com>

* Define style choices as operations on formatter (abandon semantic API)

* Adjust margin styling

* Review feedback

* Documentation nits

---------

Co-authored-by: Daniel Chao <daniel.h.chao@gmail.com>
This commit is contained in:
Philip K.F. Hölzenspies
2024-11-01 10:02:19 +00:00
committed by GitHub
parent e217cfcd6f
commit 03462fefae
38 changed files with 445 additions and 114 deletions

View File

@@ -445,6 +445,7 @@ public class PklPlugin implements Plugin<Project> {
task.getModulePath().from(spec.getModulePath());
task.getSettingsModule().set(spec.getSettingsModule());
task.getEvalRootDir().set(spec.getEvalRootDir());
task.getColor().set(spec.getColor());
task.getNoCache().set(spec.getNoCache());
task.getModuleCacheDir().set(spec.getModuleCacheDir());
task.getEvalTimeout().set(spec.getEvalTimeout());

View File

@@ -45,6 +45,8 @@ public interface BasePklSpec {
DirectoryProperty getModuleCacheDir();
Property<Boolean> getColor();
Property<Boolean> getNoCache();
// use same type (Duration) as Gradle's `Task.timeout`

View File

@@ -48,6 +48,7 @@ import org.gradle.api.tasks.Internal;
import org.gradle.api.tasks.Optional;
import org.gradle.api.tasks.TaskAction;
import org.pkl.commons.cli.CliBaseOptions;
import org.pkl.core.evaluatorSettings.Color;
import org.pkl.core.util.IoUtils;
import org.pkl.core.util.LateInit;
import org.pkl.core.util.Nullable;
@@ -117,6 +118,10 @@ public abstract class BasePklTask extends DefaultTask {
@Internal
public abstract DirectoryProperty getModuleCacheDir();
@Input
@Optional
public abstract Property<Boolean> getColor();
@Input
@Optional
public abstract Property<Boolean> getNoCache();
@@ -164,6 +169,7 @@ public abstract class BasePklTask extends DefaultTask {
null,
getEvalTimeout().getOrNull(),
mapAndGetOrNull(getModuleCacheDir(), it1 -> it1.getAsFile().toPath()),
getColor().getOrElse(false) ? Color.ALWAYS : Color.NEVER,
getNoCache().getOrElse(false),
false,
false,

View File

@@ -36,6 +36,7 @@ import org.gradle.api.tasks.Internal;
import org.gradle.api.tasks.Optional;
import org.gradle.api.tasks.TaskAction;
import org.pkl.commons.cli.CliBaseOptions;
import org.pkl.core.evaluatorSettings.Color;
import org.pkl.core.util.IoUtils;
import org.pkl.core.util.Pair;
@@ -175,6 +176,7 @@ public abstract class ModulesTask extends BasePklTask {
getProjectDir().isPresent() ? getProjectDir().get().getAsFile().toPath() : null,
getEvalTimeout().getOrNull(),
mapAndGetOrNull(getModuleCacheDir(), it1 -> it1.getAsFile().toPath()),
getColor().getOrElse(false) ? Color.ALWAYS : Color.NEVER,
getNoCache().getOrElse(false),
getOmitProjectSettings().getOrElse(false),
getNoProject().getOrElse(false),