in PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-bicep/src/main/java/org/wso2/lsp4intellij/requests/HoverHandler.java [46:85]
public static String getHoverString(@NonNull Hover hover) {
if (hover == null || hover.getContents() == null) {
return "";
}
Either<List<Either<String, MarkedString>>, MarkupContent> hoverContents = hover.getContents();
if (hoverContents.isLeft()) {
List<Either<String, MarkedString>> contents = hoverContents.getLeft();
if (contents != null && !contents.isEmpty()) {
List<String> result = new ArrayList<>();
for (Either<String, MarkedString> c : contents) {
String string = "";
if (c.isLeft() && !c.getLeft().isEmpty()) {
string = c.getLeft();
} else if (c.isRight()) {
MarkedString markedString = c.getRight();
string = (markedString.getLanguage() != null && !markedString.getLanguage().isEmpty()) ?
"```" + markedString.getLanguage() + " " + markedString.getValue() + "```" :
"";
}
final MutableDataSet options = new MutableDataSet();
Parser parser = Parser.builder(options).build();
HtmlRenderer renderer = HtmlRenderer.builder(options).build();
if (!string.isEmpty()) {
result.add(renderer.render(parser.parse(string)));
}
}
return "<html><style>p {margin: 0; color: " + (UIUtil.isUnderDarcula() ? "rgb(187,187,187)" : "black") + ";</style>" + String.join("\n\n", result) + "</html>";
} else {
return "";
}
} else if (hoverContents.isRight()) {
final MutableDataSet options = new MutableDataSet();
Parser parser = Parser.builder(options).build();
HtmlRenderer renderer = HtmlRenderer.builder(options).build();
String markedContent = hoverContents.getRight().getValue();
return "<html>" + renderer.render(parser.parse(markedContent)) + "</html>";
} else {
return "";
}
}