Skip to content

Commit

Permalink
Allow custom sort of providers, and prefer jansi by default
Browse files Browse the repository at this point in the history
  • Loading branch information
gnodet committed Mar 6, 2023
1 parent 6fcf987 commit 0b97167
Showing 1 changed file with 9 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import java.nio.charset.StandardCharsets;
import java.nio.charset.UnsupportedCharsetException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
Expand Down Expand Up @@ -48,6 +50,8 @@ public final class TerminalBuilder {
public static final String PROP_ENCODING = "org.jline.terminal.encoding";
public static final String PROP_CODEPAGE = "org.jline.terminal.codepage";
public static final String PROP_TYPE = "org.jline.terminal.type";
public static final String PROP_PROVIDERS = "org.jline.terminal.providers";
public static final String PROP_PROVIDERS_DEFAULT = "jansi,jna,exec";
public static final String PROP_JNA = "org.jline.terminal.jna";
public static final String PROP_JANSI = "org.jline.terminal.jansi";
public static final String PROP_EXEC = "org.jline.terminal.exec";
Expand Down Expand Up @@ -400,6 +404,11 @@ private Terminal doBuild() throws IOException {
exception.addSuppressed(t);
}
}
List<String> order = Arrays.asList(System.getProperty(PROP_PROVIDERS, PROP_PROVIDERS_DEFAULT).split(","));
providers.sort(Comparator.comparing(l -> {
int idx = order.indexOf(l);
return idx >= 0 ? idx : Integer.MAX_VALUE;
}));

Terminal terminal = null;
if ((system != null && system) || (system == null && in == null && out == null)) {
Expand Down

0 comments on commit 0b97167

Please sign in to comment.