From 71148ea27f4fcec4386cca3dd1db4c0f85b3b1b6 Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Mon, 25 Jun 2018 13:30:33 +0200
Subject: [PATCH] Refactor bsymb handling

---
 .../java/de/prob2/jupyter/ProBKernel.java     | 23 ++++++++++++-------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/main/java/de/prob2/jupyter/ProBKernel.java b/src/main/java/de/prob2/jupyter/ProBKernel.java
index 94a6ce5..e51914f 100644
--- a/src/main/java/de/prob2/jupyter/ProBKernel.java
+++ b/src/main/java/de/prob2/jupyter/ProBKernel.java
@@ -175,6 +175,20 @@ public final class ProBKernel extends BaseKernel {
 		return Collections.singletonList(new LanguageInfo.Help("ProB User Manual", "https://www3.hhu.de/stups/prob/index.php/User_Manual"));
 	}
 	
+	private static @NotNull String addBsymbDefinitions(final @NotNull String markdown) {
+		final StringBuilder defs = new StringBuilder();
+		final Matcher matcher = BSYMB_COMMAND_PATTERN.matcher(markdown);
+		while (matcher.find()) {
+			defs.append(BSYMB_COMMAND_DEFINITIONS.getOrDefault(matcher.group(1), ""));
+		}
+		
+		if (defs.length() > 0) {
+			return "$" + defs + "$\n" + markdown;
+		} else {
+			return markdown;
+		}
+	}
+	
 	private @Nullable DisplayData executeCommand(final @NotNull String name, final @NotNull String argString) {
 		final Command command = this.getCommands().get(name);
 		if (command == null) {
@@ -190,14 +204,7 @@ public final class ProBKernel extends BaseKernel {
 		if (result != null && result.hasDataForType(MIMEType.TEXT_MARKDOWN)) {
 			// Add definitions for any used bsymb LaTeX commands to Markdown output.
 			final String markdown = (String)result.getData(MIMEType.TEXT_MARKDOWN);
-			final StringBuilder defs = new StringBuilder();
-			final Matcher matcher = BSYMB_COMMAND_PATTERN.matcher(markdown);
-			while (matcher.find()) {
-				defs.append(BSYMB_COMMAND_DEFINITIONS.getOrDefault(matcher.group(1), ""));
-			}
-			if (defs.length() > 0) {
-				result.putMarkdown("$" + defs + "$\n" + markdown);
-			}
+			result.putMarkdown(addBsymbDefinitions(markdown));
 		}
 		
 		return result;
-- 
GitLab