Skip to content

Commit

Permalink
SystemHighlighter refresh() refresh also external syntaxHighlighters
Browse files Browse the repository at this point in the history
  • Loading branch information
mattirn committed Dec 18, 2021
1 parent 652d7a1 commit 51c0399
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
Expand Up @@ -25,6 +25,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
import java.util.function.Supplier;

import static org.jline.builtins.Styles.NANORC_THEME;
import static org.jline.builtins.SyntaxHighlighter.REGEX_TOKEN_NAME;
Expand All @@ -45,6 +46,7 @@ public class SystemHighlighter extends DefaultHighlighter {
protected final Map<String, FileHighlightCommand> fileHighlight = new HashMap<>();
protected final Map<String,SyntaxHighlighter> specificHighlighter = new HashMap<>();
protected int commandIndex;
private final List<Supplier<Boolean>> externalHighlightersRefresh = new ArrayList<>();

public SystemHighlighter(SyntaxHighlighter commandHighlighter, SyntaxHighlighter argsHighlighter
, SyntaxHighlighter langHighlighter) {
Expand Down Expand Up @@ -94,12 +96,19 @@ public void refresh(LineReader lineReader) {
for (String key : readerColors.keySet()) {
lineReader.setVariable(key, styleCompiler.getStyle(key));
}
for (Supplier<Boolean> refresh : externalHighlightersRefresh) {
refresh.get();
}
} catch (IOException e) {
Log.warn(e.getMessage());
}
}
}

public void addExternalHighlighterRefresh(Supplier<Boolean> refresh) {
externalHighlightersRefresh.add(refresh);
}

private Path compareThemes(SyntaxHighlighter highlighter, Path currentTheme) {
Path out;
if (currentTheme != null) {
Expand Down
2 changes: 2 additions & 0 deletions demo/src/main/java/org/jline/demo/Repl.java
Expand Up @@ -300,6 +300,8 @@ public static void main(String[] args) {
}
highlighter.addFileHighlight("nano", "less", "slurp");
highlighter.addFileHighlight("groovy", "classloader", Arrays.asList("-a", "--add"));
highlighter.addExternalHighlighterRefresh(printer::refresh);
highlighter.addExternalHighlighterRefresh(scriptEngine::refresh);
//
// LineReader
//
Expand Down

0 comments on commit 51c0399

Please sign in to comment.