diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/js_parser/DTSJSDocParser.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/js_parser/DTSJSDocParser.java index a54e64fe3..9539ea984 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/js_parser/DTSJSDocParser.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/js_parser/DTSJSDocParser.java @@ -38,22 +38,29 @@ public class DTSJSDocParser { for (String line : lines) { line = cleanLine(line); - if (line.isEmpty()) continue; - if (line.startsWith("@")) { foundFirstTag = true; lastTag = parseTag(line, info); } else if (!foundFirstTag) { - if (descriptionBuilder.length() > 0) { - descriptionBuilder.append(" "); - } - descriptionBuilder.append(line); - } else if (lastTag != null) { - String existing = lastTag.getDescription(); - if (existing == null || existing.isEmpty()) { - lastTag.setDescription(line); + if (line.isEmpty()) { + // Preserve blank lines as paragraph gaps (only if description has started) + if (descriptionBuilder.length() > 0) { + descriptionBuilder.append("\n"); + } } else { - lastTag.setDescription(existing + " " + line); + if (descriptionBuilder.length() > 0) { + descriptionBuilder.append("\n"); + } + descriptionBuilder.append(line); + } + } else if (lastTag != null) { + if (!line.isEmpty()) { + String existing = lastTag.getDescription(); + if (existing == null || existing.isEmpty()) { + lastTag.setDescription(line); + } else { + lastTag.setDescription(existing + "\n" + line); + } } } } diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/jsdoc/JSDocParser.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/jsdoc/JSDocParser.java index 8692965db..cbf8968ee 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/jsdoc/JSDocParser.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/jsdoc/JSDocParser.java @@ -69,22 +69,27 @@ public class JSDocParser { CleanLine cleanLine = cleanLine(rawLine, contentOffset + position); String line = cleanLine.text; - if (!line.isEmpty()) { - if (line.startsWith("@")) { - foundFirstTag = true; - lastTag = parseTagLine(line, cleanLine.offset, info); - } else if (!foundFirstTag) { + if (line.startsWith("@")) { + foundFirstTag = true; + lastTag = parseTagLine(line, cleanLine.offset, info); + } else if (!foundFirstTag) { + if (line.isEmpty()) { + // Preserve blank lines as paragraph gaps (only if description has started) if (descriptionBuilder.length() > 0) { - descriptionBuilder.append(" "); + descriptionBuilder.append("\n"); + } + } else { + if (descriptionBuilder.length() > 0) { + descriptionBuilder.append("\n"); } descriptionBuilder.append(line); - } else if (lastTag != null) { - String existing = lastTag.getDescription(); - if (existing == null || existing.isEmpty()) { - lastTag.setDescription(line); - } else { - lastTag.setDescription(existing + " " + line); - } + } + } else if (lastTag != null && !line.isEmpty()) { + String existing = lastTag.getDescription(); + if (existing == null || existing.isEmpty()) { + lastTag.setDescription(line); + } else { + lastTag.setDescription(existing + "\n" + line); } }