in ui/src/com/jediterm/terminal/ui/JediTermWidget.java [63:112]
public JediTermWidget(int columns, int lines, SettingsProvider settingsProvider) {
super(new BorderLayout());
mySettingsProvider = settingsProvider;
StyleState styleState = createDefaultStyle();
myTextProcessing = new TextProcessing(settingsProvider.getHyperlinkColor(),
settingsProvider.getHyperlinkHighlightingMode());
TerminalTextBuffer terminalTextBuffer = new TerminalTextBuffer(columns, lines, styleState, settingsProvider.getBufferMaxLinesCount(), myTextProcessing);
myTextProcessing.setTerminalTextBuffer(terminalTextBuffer);
myTerminalPanel = createTerminalPanel(mySettingsProvider, styleState, terminalTextBuffer);
myTerminal = createTerminal(myTerminalPanel, terminalTextBuffer, styleState);
myTypeAheadTerminalModel = new JediTermTypeAheadModel(myTerminal, terminalTextBuffer, settingsProvider);
myTypeAheadManager = new TerminalTypeAheadManager(myTypeAheadTerminalModel);
JediTermDebouncerImpl typeAheadDebouncer =
new JediTermDebouncerImpl(myTypeAheadManager::debounce, TerminalTypeAheadManager.MAX_TERMINAL_DELAY, getExecutorServiceManager());
myTypeAheadManager.setClearPredictionsDebouncer(typeAheadDebouncer);
myTerminalPanel.setTypeAheadManager(myTypeAheadManager);
myTypeAheadTerminalModel.addTypeAheadModelListener(myTerminalPanel::repaint);
myTerminal.setModeEnabled(TerminalMode.AltSendsEscape, mySettingsProvider.altSendsEscape());
myTerminalPanel.addTerminalMouseListener(myTerminal);
myTerminalPanel.setNextProvider(this);
myTerminalPanel.setCoordAccessor(myTerminal);
myPreConnectHandler = createPreConnectHandler(myTerminal);
myTerminalPanel.addCustomKeyListener(myPreConnectHandler);
myScrollBar = createScrollBar();
myInnerPanel = new JLayeredPane();
myInnerPanel.setFocusable(false);
setFocusable(false);
myInnerPanel.setLayout(new TerminalLayout());
myInnerPanel.add(myTerminalPanel, TerminalLayout.TERMINAL);
myInnerPanel.add(myScrollBar, TerminalLayout.SCROLL);
add(myInnerPanel, BorderLayout.CENTER);
myScrollBar.setModel(myTerminalPanel.getVerticalScrollModel());
myTerminalPanel.init(myScrollBar);
myTerminalPanel.setVisible(true);
}