From d9cd85225313998309938e20c7575b51f8d1237f Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Tue, 16 Jun 2020 15:18:43 +0200 Subject: [PATCH] Refactor CommandUtils.inspectInBExpression slightly --- .../java/de/prob2/jupyter/CommandUtils.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/de/prob2/jupyter/CommandUtils.java b/src/main/java/de/prob2/jupyter/CommandUtils.java index 3d723f2..4ed1d6b 100644 --- a/src/main/java/de/prob2/jupyter/CommandUtils.java +++ b/src/main/java/de/prob2/jupyter/CommandUtils.java @@ -358,14 +358,7 @@ public final class CommandUtils { return null; } - public static @Nullable DisplayData inspectInBExpression(final @NotNull Trace trace, final @NotNull String code, final int at) { - final Matcher identifierMatcher = CommandUtils.matchBIdentifierAt(code, at); - if (identifierMatcher == null) { - return null; - } - final String identifier = identifierMatcher.group(); - final IEvalElement formula = trace.getModel().parseFormula(identifier, FormulaExpand.TRUNCATE); - + private static @NotNull DisplayData formatBExpressionInspectText(final String identifier, final TypeCheckResult type, final AbstractEvalResult currentValue) { final StringBuilder sbPlain = new StringBuilder(); final StringBuilder sbMarkdown = new StringBuilder(); sbPlain.append(UnicodeTranslator.toUnicode(identifier)); @@ -374,7 +367,6 @@ public final class CommandUtils { sbMarkdown.append(UnicodeTranslator.toLatex(identifier)); sbMarkdown.append("$ \n"); - final TypeCheckResult type = trace.getStateSpace().typeCheck(formula); sbPlain.append("Type: "); sbMarkdown.append("**Type:** "); if (type.isOk()) { @@ -391,17 +383,29 @@ public final class CommandUtils { sbPlain.append('\n'); sbMarkdown.append(" \n"); - final AbstractEvalResult aer = trace.evalCurrent(formula); sbPlain.append("Current value: "); - sbPlain.append(CommandUtils.inlinePlainTextForEvalResult(aer)); + sbPlain.append(CommandUtils.inlinePlainTextForEvalResult(currentValue)); sbMarkdown.append("**Current value:** "); - sbMarkdown.append(inlineMarkdownForEvalResult(aer)); + sbMarkdown.append(inlineMarkdownForEvalResult(currentValue)); final DisplayData result = new DisplayData(sbPlain.toString()); result.putMarkdown(sbMarkdown.toString()); return result; } + public static @Nullable DisplayData inspectInBExpression(final @NotNull Trace trace, final @NotNull String code, final int at) { + final Matcher identifierMatcher = CommandUtils.matchBIdentifierAt(code, at); + if (identifierMatcher == null) { + return null; + } + final String identifier = identifierMatcher.group(); + final IEvalElement formula = trace.getModel().parseFormula(identifier, FormulaExpand.TRUNCATE); + final TypeCheckResult type = trace.getStateSpace().typeCheck(formula); + final AbstractEvalResult currentValue = trace.evalCurrent(formula); + + return formatBExpressionInspectText(identifier, type, currentValue); + } + public static @NotNull Inspector bExpressionInspector(final @NotNull Trace trace) { return (code, at) -> inspectInBExpression(trace, code, at); } -- GitLab