public static String getHoverString()

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 "";
        }
    }