Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,12 @@
*******************************************************************************/
package org.eclipse.lsp4e.test.edit;

import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assumptions.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
Expand All @@ -31,6 +35,7 @@
import java.util.List;
import java.util.Random;
import java.util.UUID;
import java.util.stream.Stream;

import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.resources.IFile;
Expand All @@ -40,6 +45,7 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.lsp4e.LSPEclipseUtils;
Expand All @@ -50,6 +56,8 @@
import org.eclipse.lsp4j.CompletionTriggerKind;
import org.eclipse.lsp4j.CreateFile;
import org.eclipse.lsp4j.Location;
import org.eclipse.lsp4j.MarkupContent;
import org.eclipse.lsp4j.MarkupKind;
import org.eclipse.lsp4j.Position;
import org.eclipse.lsp4j.Range;
import org.eclipse.lsp4j.RenameFile;
Expand All @@ -71,6 +79,9 @@
import org.junit.jupiter.api.condition.OS;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;

public class LSPEclipseUtilsTest extends AbstractTestWithProject {

Expand Down Expand Up @@ -612,4 +623,19 @@ public void parseRange_shouldReturnNullRange_NoFragment() {
Range actual = LSPEclipseUtils.parseRange("file:///a/b");
assertNull(actual);
}

public static Stream<Arguments> getHtmlDocString() {
return Stream.of( //
Arguments.of(Either.forLeft(null), null), //
Arguments.of(Either.forLeft("test"), "<p>test</p>"), //
Arguments.of(Either.forRight(new MarkupContent(MarkupKind.MARKDOWN, "# hi!")), "<h1>hi!</h1>\n") //
);
}

@ParameterizedTest
@MethodSource
void getHtmlDocString(Either<@Nullable String, MarkupContent> arg, String expected) throws Exception {
assertEquals(expected, LSPEclipseUtils.getHtmlDocString(arg));
}

}
11 changes: 3 additions & 8 deletions org.eclipse.lsp4e/src/org/eclipse/lsp4e/LSPEclipseUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
*******************************************************************************/
package org.eclipse.lsp4e;

import static org.eclipse.lsp4e.internal.NullSafetyHelper.*;
import static org.eclipse.lsp4e.internal.NullSafetyHelper.castNonNull;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
Expand All @@ -48,9 +48,6 @@
import java.util.regex.Pattern;
import java.util.stream.Collectors;

import org.commonmark.node.Node;
import org.commonmark.parser.Parser;
import org.commonmark.renderer.html.HtmlRenderer;
import org.eclipse.core.filebuffers.FileBuffers;
import org.eclipse.core.filebuffers.IFileBuffer;
import org.eclipse.core.filebuffers.ITextFileBuffer;
Expand Down Expand Up @@ -92,6 +89,7 @@
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.lsp4e.internal.ArrayUtil;
import org.eclipse.lsp4e.internal.DocumentInputStream;
import org.eclipse.lsp4e.internal.MarkdownUtil;
import org.eclipse.lsp4e.internal.ResourceForUriCache;
import org.eclipse.lsp4e.refactoring.CreateFileChange;
import org.eclipse.lsp4e.refactoring.DeleteExternalFile;
Expand Down Expand Up @@ -1493,10 +1491,7 @@ public static List<IContentType> getDocumentContentTypes(IDocument document) {
String kind = markupContent.getKind();
if (MARKDOWN.equalsIgnoreCase(kind) || MD.equalsIgnoreCase(kind)) {
try {
Parser parser = Parser.builder().build();
Node document = parser.parse(text);
HtmlRenderer renderer = HtmlRenderer.builder().build();
return renderer.render(document);
return MarkdownUtil.renderToHtml(text);
} catch (Exception e) {
LanguageServerPlugin.logError(e);
return htmlParagraph(text);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class MarkdownUtil {
private static final List<Extension> EXTENSIONS = List.of(TablesExtension.create());

/**
* Singleton instance, as both classes are thread-safe, see
* Singleton instances, as both classes are thread-safe, see
* https://github.com/commonmark/commonmark-java?tab=readme-ov-file#thread-safety
*/
private static final Parser PARSER = Parser.builder().extensions(EXTENSIONS).build();
Expand Down