public JediTermWidget()

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