Skip to content
Snippets Groups Projects
Commit e28b8054 authored by dgelessus's avatar dgelessus
Browse files

Refactor CommandUtils.inspectInPreference slightly

parent 59fc8642
No related branches found
No related tags found
No related merge requests found
......@@ -442,20 +442,7 @@ public final class CommandUtils {
return (code, at) -> completeInBExpression(trace, code, at);
}
public static @Nullable DisplayData inspectInPreference(final @NotNull Trace trace, final @NotNull String code, final int at) {
final Matcher prefNameMatcher = B_IDENTIFIER_PATTERN.matcher(code);
if (prefNameMatcher.lookingAt() && at <= prefNameMatcher.end()) {
final String name = prefNameMatcher.group();
final GetPreferenceCommand cmdCurrent = new GetPreferenceCommand(name);
final GetDefaultPreferencesCommand cmdDefaults = new GetDefaultPreferencesCommand();
trace.getStateSpace().execute(cmdCurrent, cmdDefaults);
final String currentValue = cmdCurrent.getValue();
final ProBPreference pref = cmdDefaults.getPreferences()
.stream()
.filter(p -> name.equals(p.name))
.findAny()
.orElseThrow(NoSuchElementException::new);
private static @NotNull DisplayData formatPreferenceInspectText(final String name, final String currentValue, final ProBPreference pref) {
final StringBuilder sbPlain = new StringBuilder();
final StringBuilder sbMarkdown = new StringBuilder();
sbPlain.append(name);
......@@ -493,6 +480,23 @@ public final class CommandUtils {
final DisplayData result = new DisplayData(sbPlain.toString());
result.putMarkdown(sbMarkdown.toString());
return result;
}
public static @Nullable DisplayData inspectInPreference(final @NotNull Trace trace, final @NotNull String code, final int at) {
final Matcher prefNameMatcher = B_IDENTIFIER_PATTERN.matcher(code);
if (prefNameMatcher.lookingAt() && at <= prefNameMatcher.end()) {
final String name = prefNameMatcher.group();
final GetPreferenceCommand cmdCurrent = new GetPreferenceCommand(name);
final GetDefaultPreferencesCommand cmdDefaults = new GetDefaultPreferencesCommand();
trace.getStateSpace().execute(cmdCurrent, cmdDefaults);
final String currentValue = cmdCurrent.getValue();
final ProBPreference pref = cmdDefaults.getPreferences()
.stream()
.filter(p -> name.equals(p.name))
.findAny()
.orElseThrow(NoSuchElementException::new);
return formatPreferenceInspectText(name, currentValue, pref);
} else {
return null;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment