private void readSettings(@NotNull Element childNode, boolean isDefault, @NotNull Ref<Float> fontScale) {
    switch (childNode.getAttributeValue(NAME_ATTR)) {
      case FONT_SCALE -> fontScale.set(myValueReader.read(Float.class, childNode));
      case LINE_SPACING -> {
        Float value = myValueReader.read(Float.class, childNode);
        if (value != null) setLineSpacing(value);
      }
      case EDITOR_FONT_SIZE -> {
        float value = readFontSize(childNode, isDefault, fontScale.get());
        if (value > 0) setEditorFontSize(value);
      }
      case EDITOR_FONT_NAME -> {
        String value = myValueReader.read(String.class, childNode);
        if (value != null) setEditorFontName(value);
      }
      case CONSOLE_LINE_SPACING -> {
        Float value = myValueReader.read(Float.class, childNode);
        if (value != null) setConsoleLineSpacing(value);
      }
      case CONSOLE_FONT_SIZE -> {
        float value = readFontSize(childNode, isDefault, fontScale.get());
        if (value > 0) setConsoleFontSize(value);
      }
      case CONSOLE_FONT_NAME -> {
        String value = myValueReader.read(String.class, childNode);
        if (value != null) setConsoleFontName(value);
      }
      case EDITOR_LIGATURES -> {
        Boolean value = myValueReader.read(Boolean.class, childNode);
        if (value != null) ensureEditableFontPreferences().setUseLigatures(value);
      }
      case CONSOLE_LIGATURES -> {
        Boolean value = myValueReader.read(Boolean.class, childNode);
        if (value != null) {
          ensureEditableConsoleFontPreferences().setUseLigatures(value);
        }
      }
    }
  }
private void readSettings(@NotNull Element childNode, boolean isDefault, @NotNull Ref<Float> fontScale)