From 68e03c8f0816bf13e9e36403ba690887614caa07 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Mon, 25 Jun 2018 14:27:52 +0200 Subject: [PATCH] Change Command interface to require the complete method Almost all command implement code completion, so the default method isn't really necessary. --- src/main/java/de/prob2/jupyter/commands/BrowseCommand.java | 7 +++++++ src/main/java/de/prob2/jupyter/commands/Command.java | 4 +--- src/main/java/de/prob2/jupyter/commands/GroovyCommand.java | 7 +++++++ src/main/java/de/prob2/jupyter/commands/RenderCommand.java | 7 +++++++ src/main/java/de/prob2/jupyter/commands/ShowCommand.java | 7 +++++++ .../java/de/prob2/jupyter/commands/VersionCommand.java | 7 +++++++ 6 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/prob2/jupyter/commands/BrowseCommand.java b/src/main/java/de/prob2/jupyter/commands/BrowseCommand.java index 64756f2..050c1df 100644 --- a/src/main/java/de/prob2/jupyter/commands/BrowseCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/BrowseCommand.java @@ -20,9 +20,11 @@ import de.prob.statespace.Transition; import de.prob2.jupyter.ProBKernel; import de.prob2.jupyter.UserErrorException; +import io.github.spencerpark.jupyter.kernel.ReplacementOptions; import io.github.spencerpark.jupyter.kernel.display.DisplayData; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import se.sawano.java.text.AlphanumericComparator; @@ -86,4 +88,9 @@ public final class BrowseCommand implements Command { } return new DisplayData(sb.toString()); } + + @Override + public @Nullable ReplacementOptions complete(final @NotNull ProBKernel kernel, final @NotNull String argString, final int at) { + return null; + } } diff --git a/src/main/java/de/prob2/jupyter/commands/Command.java b/src/main/java/de/prob2/jupyter/commands/Command.java index 460e403..5f30dd6 100644 --- a/src/main/java/de/prob2/jupyter/commands/Command.java +++ b/src/main/java/de/prob2/jupyter/commands/Command.java @@ -15,7 +15,5 @@ public interface Command { public abstract @Nullable DisplayData run(final @NotNull ProBKernel kernel, final @NotNull String argString); - public default @Nullable ReplacementOptions complete(final @NotNull ProBKernel kernel, final @NotNull String argString, final int at) { - return null; - } + public abstract @Nullable ReplacementOptions complete(final @NotNull ProBKernel kernel, final @NotNull String argString, final int at); } diff --git a/src/main/java/de/prob2/jupyter/commands/GroovyCommand.java b/src/main/java/de/prob2/jupyter/commands/GroovyCommand.java index 7e5e895..3d28c1a 100644 --- a/src/main/java/de/prob2/jupyter/commands/GroovyCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/GroovyCommand.java @@ -11,9 +11,11 @@ import de.prob.scripting.ScriptEngineProvider; import de.prob2.jupyter.ProBKernel; +import io.github.spencerpark.jupyter.kernel.ReplacementOptions; import io.github.spencerpark.jupyter.kernel.display.DisplayData; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class GroovyCommand implements Command { private final @NotNull ScriptEngine groovyScriptEngine; @@ -48,4 +50,9 @@ public final class GroovyCommand implements Command { } return new DisplayData(Objects.toString(result)); } + + @Override + public @Nullable ReplacementOptions complete(final @NotNull ProBKernel kernel, final @NotNull String argString, final int at) { + return null; + } } diff --git a/src/main/java/de/prob2/jupyter/commands/RenderCommand.java b/src/main/java/de/prob2/jupyter/commands/RenderCommand.java index 9da84ed..0965634 100644 --- a/src/main/java/de/prob2/jupyter/commands/RenderCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/RenderCommand.java @@ -5,9 +5,11 @@ import com.google.inject.Inject; import de.prob2.jupyter.ProBKernel; import de.prob2.jupyter.UserErrorException; +import io.github.spencerpark.jupyter.kernel.ReplacementOptions; import io.github.spencerpark.jupyter.kernel.display.DisplayData; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class RenderCommand implements Command { @Inject @@ -40,4 +42,9 @@ public final class RenderCommand implements Command { data.putData(mimeType, code); return data; } + + @Override + public @Nullable ReplacementOptions complete(final @NotNull ProBKernel kernel, final @NotNull String argString, final int at) { + return null; + } } diff --git a/src/main/java/de/prob2/jupyter/commands/ShowCommand.java b/src/main/java/de/prob2/jupyter/commands/ShowCommand.java index 9b84ad1..fd8dc29 100644 --- a/src/main/java/de/prob2/jupyter/commands/ShowCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/ShowCommand.java @@ -12,9 +12,11 @@ import de.prob.statespace.Trace; import de.prob2.jupyter.ProBKernel; import de.prob2.jupyter.UserErrorException; +import io.github.spencerpark.jupyter.kernel.ReplacementOptions; import io.github.spencerpark.jupyter.kernel.display.DisplayData; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class ShowCommand implements Command { private final @NotNull AnimationSelector animationSelector; @@ -69,4 +71,9 @@ public final class ShowCommand implements Command { result.putMarkdown(tableBuilder.toString()); return result; } + + @Override + public @Nullable ReplacementOptions complete(final @NotNull ProBKernel kernel, final @NotNull String argString, final int at) { + return null; + } } diff --git a/src/main/java/de/prob2/jupyter/commands/VersionCommand.java b/src/main/java/de/prob2/jupyter/commands/VersionCommand.java index 82348bf..ad3d097 100644 --- a/src/main/java/de/prob2/jupyter/commands/VersionCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/VersionCommand.java @@ -8,9 +8,11 @@ import de.prob.statespace.AnimationSelector; import de.prob2.jupyter.ProBKernel; +import io.github.spencerpark.jupyter.kernel.ReplacementOptions; import io.github.spencerpark.jupyter.kernel.display.DisplayData; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class VersionCommand implements Command { private final @NotNull AnimationSelector animationSelector; @@ -38,4 +40,9 @@ public final class VersionCommand implements Command { this.animationSelector.getCurrentTrace().getStateSpace().execute(cmd); return new DisplayData(String.format("ProB CLI: %s\nProB 2: %s (%s)", cmd.getVersion(), Main.getVersion(), Main.getGitSha())); } + + @Override + public @Nullable ReplacementOptions complete(final @NotNull ProBKernel kernel, final @NotNull String argString, final int at) { + return null; + } } -- GitLab