diff --git a/src/main/java/de/prob2/jupyter/CommandUtils.java b/src/main/java/de/prob2/jupyter/CommandUtils.java index d4fedaea7fac770d86fd88912c0f5b2ab47f424c..a26ee5f350f7a2a867f1a08dc082e5db9b939561 100644 --- a/src/main/java/de/prob2/jupyter/CommandUtils.java +++ b/src/main/java/de/prob2/jupyter/CommandUtils.java @@ -442,14 +442,8 @@ public final class CommandUtils { return (code, at) -> completeInBExpression(trace, code, at); } - public static @Nullable DisplayData inspectInPreferences(final @NotNull Trace trace, final @NotNull String code, final int at) { - final Matcher argSplitMatcher = ARG_SPLIT_PATTERN.matcher(code); - int prefNameStart = 0; - while (argSplitMatcher.find() && argSplitMatcher.end() <= at) { - prefNameStart = argSplitMatcher.end(); - } + public static @Nullable DisplayData inspectInPreference(final @NotNull Trace trace, final @NotNull String code, final int at) { final Matcher prefNameMatcher = B_IDENTIFIER_PATTERN.matcher(code); - prefNameMatcher.region(prefNameStart, code.length()); if (prefNameMatcher.lookingAt()) { final String name = prefNameMatcher.group(); final GetPreferenceCommand cmdCurrent = new GetPreferenceCommand(name); @@ -504,18 +498,12 @@ public final class CommandUtils { } } - public static @NotNull Inspector preferencesInspector(final @NotNull Trace trace) { - return (code, at) -> inspectInPreferences(trace, code, at); + public static @NotNull Inspector preferenceInspector(final @NotNull Trace trace) { + return (code, at) -> inspectInPreference(trace, code, at); } - public static @Nullable ReplacementOptions completeInPreferences(final @NotNull Trace trace, final @NotNull String code, final int at) { - final Matcher argSplitMatcher = ARG_SPLIT_PATTERN.matcher(code); - int prefNameStart = 0; - while (argSplitMatcher.find() && argSplitMatcher.end() <= at) { - prefNameStart = argSplitMatcher.end(); - } + public static @Nullable ReplacementOptions completeInPreference(final @NotNull Trace trace, final @NotNull String code, final int at) { final Matcher prefNameMatcher = B_IDENTIFIER_PATTERN.matcher(code); - prefNameMatcher.region(prefNameStart, code.length()); if (prefNameMatcher.lookingAt() && at <= prefNameMatcher.end()) { final String prefix = code.substring(prefNameMatcher.start(), at); final GetCurrentPreferencesCommand cmd = new GetCurrentPreferencesCommand(); @@ -527,7 +515,7 @@ public final class CommandUtils { } } - public static @NotNull Completer preferencesCompleter(final @NotNull Trace trace) { - return (code, at) -> completeInPreferences(trace, code, at); + public static @NotNull Completer preferenceCompleter(final @NotNull Trace trace) { + return (code, at) -> completeInPreference(trace, code, at); } } diff --git a/src/main/java/de/prob2/jupyter/commands/LoadCellCommand.java b/src/main/java/de/prob2/jupyter/commands/LoadCellCommand.java index e9dbafd0d01858a6b633b6097745f5793b9ef679..cc5a928295dd370a6a3b588d108bb5a113443b22 100644 --- a/src/main/java/de/prob2/jupyter/commands/LoadCellCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/LoadCellCommand.java @@ -87,7 +87,7 @@ public final class LoadCellCommand implements Command { @Override public @NotNull ParameterInspectors getParameterInspectors() { return new ParameterInspectors(ImmutableMap.of( - PREFS_PARAM, CommandUtils.preferencesInspector(this.animationSelector.getCurrentTrace()), + PREFS_PARAM, CommandUtils.preferenceInspector(this.animationSelector.getCurrentTrace()), CODE_PARAM, CommandUtils.bExpressionInspector(this.animationSelector.getCurrentTrace()) )); } @@ -95,7 +95,7 @@ public final class LoadCellCommand implements Command { @Override public @NotNull ParameterCompleters getParameterCompleters() { return new ParameterCompleters(ImmutableMap.of( - PREFS_PARAM, CommandUtils.preferencesCompleter(this.animationSelector.getCurrentTrace()), + PREFS_PARAM, CommandUtils.preferenceCompleter(this.animationSelector.getCurrentTrace()), CODE_PARAM, CommandUtils.bExpressionCompleter(this.animationSelector.getCurrentTrace()) )); } diff --git a/src/main/java/de/prob2/jupyter/commands/LoadFileCommand.java b/src/main/java/de/prob2/jupyter/commands/LoadFileCommand.java index 48f5e62ba9aa93db736ef3bed0af916490786564..ccb1456850bf696d1d6a52670a71f013fb51739b 100644 --- a/src/main/java/de/prob2/jupyter/commands/LoadFileCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/LoadFileCommand.java @@ -115,7 +115,7 @@ public final class LoadFileCommand implements Command { public @NotNull ParameterInspectors getParameterInspectors() { return new ParameterInspectors(ImmutableMap.of( FILE_NAME_PARAM, (filename, at) -> null, - PREFS_PARAM, CommandUtils.preferencesInspector(this.animationSelector.getCurrentTrace()) + PREFS_PARAM, CommandUtils.preferenceInspector(this.animationSelector.getCurrentTrace()) )); } @@ -145,7 +145,7 @@ public final class LoadFileCommand implements Command { } return new ReplacementOptions(fileNames, 0, filename.length()); }, - PREFS_PARAM, CommandUtils.preferencesCompleter(this.animationSelector.getCurrentTrace()) + PREFS_PARAM, CommandUtils.preferenceCompleter(this.animationSelector.getCurrentTrace()) )); } } diff --git a/src/main/java/de/prob2/jupyter/commands/PrefCommand.java b/src/main/java/de/prob2/jupyter/commands/PrefCommand.java index 7132c9323035bfccd853ba3e9c0649e522c6ccb3..c0c4f1347336bac89a0a835353014a63fe0dbb03 100644 --- a/src/main/java/de/prob2/jupyter/commands/PrefCommand.java +++ b/src/main/java/de/prob2/jupyter/commands/PrefCommand.java @@ -112,14 +112,14 @@ public final class PrefCommand implements Command { @Override public @NotNull ParameterInspectors getParameterInspectors() { return new ParameterInspectors(Collections.singletonMap( - PREFS_PARAM, CommandUtils.preferencesInspector(this.animationSelector.getCurrentTrace()) + PREFS_PARAM, CommandUtils.preferenceInspector(this.animationSelector.getCurrentTrace()) )); } @Override public @NotNull ParameterCompleters getParameterCompleters() { return new ParameterCompleters(Collections.singletonMap( - PREFS_PARAM, CommandUtils.preferencesCompleter(this.animationSelector.getCurrentTrace()) + PREFS_PARAM, CommandUtils.preferenceCompleter(this.animationSelector.getCurrentTrace()) )); } }