private static @NotNull List<EffectType> computeEffectTypes(@NotNull AnsiTerminalEmulator terminalEmulator) {
    ArrayList<EffectType> result = new ArrayList<>();
    AnsiTerminalEmulator.Underline underline = terminalEmulator.getUnderline();
    if (underline == AnsiTerminalEmulator.Underline.SINGLE_UNDERLINE) {
      result.add(EffectType.LINE_UNDERSCORE);
    }
    else if (underline == AnsiTerminalEmulator.Underline.DOUBLE_UNDERLINE) {
      result.add(EffectType.BOLD_LINE_UNDERSCORE);
    }
    if (terminalEmulator.isCrossedOut()) {
      result.add(EffectType.STRIKEOUT);
    }
    AnsiTerminalEmulator.FrameType frameType = terminalEmulator.getFrameType();
    if (frameType == AnsiTerminalEmulator.FrameType.FRAMED) {
      result.add(EffectType.BOXED);
    }
    else if (frameType == AnsiTerminalEmulator.FrameType.ENCIRCLED) {
      result.add(EffectType.ROUNDED_BOX);
    }
    return result;
  }
private static @NotNull List<EffectType> computeEffectTypes(@NotNull AnsiTerminalEmulator terminalEmulator)