From 410ba1c19b9d947426fc16023cee17c5496fcfb3 Mon Sep 17 00:00:00 2001 From: Sergei Tachenov Date: Wed, 16 Apr 2025 15:13:50 +0300 Subject: [PATCH] IJPL-184068 Use Float for terminal font sizes Rounding to Int was implemented before Float font sizes became a thing. Now it seems more reasonable to just use Float everywhere than have a mess of Float and Int with roundings and conversions. Drop those 2D suffixes and port everything to Float. (cherry picked from commit daeb3ae0625dfe029bf92c6a91ea1a43d631aeeb) IJ-CR-160631 GitOrigin-RevId: 459995b093f506bb803c21a38802c9f94946306b --- platform/execution-impl/api-dump-unreviewed.txt | 3 +-- .../editor/actions/TerminalChangeFontSizeAction.kt | 2 +- .../JBTerminalSystemSettingsProviderBase.java | 11 +---------- .../src/com/intellij/terminal/JBTerminalWidget.java | 4 ++-- .../terminal/TerminalConsoleFontSizeProvider.kt | 6 +----- .../com/intellij/terminal/TerminalFontSizeProvider.kt | 4 +--- .../intellij/terminal/TerminalUiSettingsManager.kt | 6 +----- .../plugins/terminal/TerminalFontSizeProviderImpl.kt | 7 +------ 8 files changed, 9 insertions(+), 34 deletions(-) diff --git a/platform/execution-impl/api-dump-unreviewed.txt b/platform/execution-impl/api-dump-unreviewed.txt index 426d57e1e693..590cf2473e2d 100644 --- a/platform/execution-impl/api-dump-unreviewed.txt +++ b/platform/execution-impl/api-dump-unreviewed.txt @@ -2414,8 +2414,7 @@ f:com.intellij.terminal.TerminalUiSettingsManager - f:getAutoShowDocumentationPopup():Z - f:getCursorShape():com.intellij.terminal.TerminalUiSettingsManager$CursorShape - f:getEditorColorsScheme():com.intellij.openapi.editor.colors.EditorColorsScheme -- f:getFontSize():I -- f:getFontSize2D():F +- f:getFontSize():F - sf:getInstance():com.intellij.terminal.TerminalUiSettingsManager - f:getMaxVisibleCompletionItemsCount():I - getState():com.intellij.terminal.TerminalUiSettingsManager$State diff --git a/platform/execution-impl/src/com/intellij/openapi/editor/actions/TerminalChangeFontSizeAction.kt b/platform/execution-impl/src/com/intellij/openapi/editor/actions/TerminalChangeFontSizeAction.kt index 1e07a271033d..117556537798 100644 --- a/platform/execution-impl/src/com/intellij/openapi/editor/actions/TerminalChangeFontSizeAction.kt +++ b/platform/execution-impl/src/com/intellij/openapi/editor/actions/TerminalChangeFontSizeAction.kt @@ -13,7 +13,7 @@ import org.jetbrains.annotations.ApiStatus sealed class TerminalChangeFontSizeAction(private val myStep: Float) : DumbAwareAction(), LightEditCompatible { override fun actionPerformed(e: AnActionEvent) { val settingsProvider = getTerminalWidget(e)?.settingsProvider ?: return - val newFontSize = settingsProvider.terminalFontSize2D + myStep + val newFontSize = settingsProvider.terminalFontSize + myStep if (newFontSize >= EditorFontsConstants.getMinEditorFontSize() && newFontSize <= EditorFontsConstants.getMaxEditorFontSize()) { settingsProvider.terminalFontSize = newFontSize } diff --git a/platform/execution-impl/src/com/intellij/terminal/JBTerminalSystemSettingsProviderBase.java b/platform/execution-impl/src/com/intellij/terminal/JBTerminalSystemSettingsProviderBase.java index 7bd9119c68fc..aa8272b2d219 100644 --- a/platform/execution-impl/src/com/intellij/terminal/JBTerminalSystemSettingsProviderBase.java +++ b/platform/execution-impl/src/com/intellij/terminal/JBTerminalSystemSettingsProviderBase.java @@ -265,16 +265,7 @@ public class JBTerminalSystemSettingsProviderBase extends DefaultSettingsProvide @Override public float getTerminalFontSize() { - return (float)myFontSizeProvider.getFontSize(); - } - - /** - * Same as getTerminalFontSize() but without rounding. - * @return the raw font size value - */ - @ApiStatus.Internal - public float getTerminalFontSize2D() { - return myFontSizeProvider.getFontSize2D(); + return myFontSizeProvider.getFontSize(); } @ApiStatus.Internal diff --git a/platform/execution-impl/src/com/intellij/terminal/JBTerminalWidget.java b/platform/execution-impl/src/com/intellij/terminal/JBTerminalWidget.java index 94520ee77e0c..e81328c1a362 100644 --- a/platform/execution-impl/src/com/intellij/terminal/JBTerminalWidget.java +++ b/platform/execution-impl/src/com/intellij/terminal/JBTerminalWidget.java @@ -157,11 +157,11 @@ public class JBTerminalWidget extends JediTermWidget implements Disposable, UiCo } /** - * @deprecated use {@link JBTerminalSystemSettingsProviderBase#getTerminalFontSize2D()} instead + * @deprecated use {@link JBTerminalSystemSettingsProviderBase#getTerminalFontSize()} instead */ @Deprecated public float getFontSize2D() { - return getSettingsProvider().getTerminalFontSize2D(); + return getSettingsProvider().getTerminalFontSize(); } /** diff --git a/platform/execution-impl/src/com/intellij/terminal/TerminalConsoleFontSizeProvider.kt b/platform/execution-impl/src/com/intellij/terminal/TerminalConsoleFontSizeProvider.kt index 5d4b2c0f745b..ba42e59028bb 100644 --- a/platform/execution-impl/src/com/intellij/terminal/TerminalConsoleFontSizeProvider.kt +++ b/platform/execution-impl/src/com/intellij/terminal/TerminalConsoleFontSizeProvider.kt @@ -6,14 +6,10 @@ import com.intellij.openapi.Disposable internal class TerminalConsoleFontSizeProvider : TerminalFontSizeProvider { private val uiSettingsManager = TerminalUiSettingsManager.getInstance() - override fun getFontSize(): Int { + override fun getFontSize(): Float { return uiSettingsManager.getFontSize() } - override fun getFontSize2D(): Float { - return uiSettingsManager.getFontSize2D() - } - override fun setFontSize(newSize: Float) { return uiSettingsManager.setFontSize(newSize) } diff --git a/platform/execution-impl/src/com/intellij/terminal/TerminalFontSizeProvider.kt b/platform/execution-impl/src/com/intellij/terminal/TerminalFontSizeProvider.kt index ddf4d1ab5fcd..82f548374871 100644 --- a/platform/execution-impl/src/com/intellij/terminal/TerminalFontSizeProvider.kt +++ b/platform/execution-impl/src/com/intellij/terminal/TerminalFontSizeProvider.kt @@ -6,9 +6,7 @@ import org.jetbrains.annotations.ApiStatus @ApiStatus.Internal interface TerminalFontSizeProvider { - fun getFontSize(): Int - - fun getFontSize2D(): Float + fun getFontSize(): Float /** * Sets temporary font size without changing the size in the settings. diff --git a/platform/execution-impl/src/com/intellij/terminal/TerminalUiSettingsManager.kt b/platform/execution-impl/src/com/intellij/terminal/TerminalUiSettingsManager.kt index b74e43049c8e..cbaaa025c4ee 100644 --- a/platform/execution-impl/src/com/intellij/terminal/TerminalUiSettingsManager.kt +++ b/platform/execution-impl/src/com/intellij/terminal/TerminalUiSettingsManager.kt @@ -101,11 +101,7 @@ class TerminalUiSettingsManager internal constructor() : PersistentStateComponen } } - fun getFontSize(): Int { - return (getFontSize2D() + 0.5).toInt() - } - - fun getFontSize2D(): Float { + fun getFontSize(): Float { if (fontSize <= 0) { fontSize = detectFontSize() } diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/TerminalFontSizeProviderImpl.kt b/plugins/terminal/src/org/jetbrains/plugins/terminal/TerminalFontSizeProviderImpl.kt index 64681a531918..6061bc4ecb63 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/TerminalFontSizeProviderImpl.kt +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/TerminalFontSizeProviderImpl.kt @@ -8,7 +8,6 @@ import com.intellij.openapi.components.Service import com.intellij.openapi.components.service import com.intellij.terminal.TerminalFontSizeProvider import java.util.concurrent.CopyOnWriteArrayList -import kotlin.math.roundToInt @Service(Service.Level.APP) internal class TerminalFontSizeProviderImpl : TerminalFontSizeProvider, Disposable { @@ -29,11 +28,7 @@ internal class TerminalFontSizeProviderImpl : TerminalFontSizeProvider, Disposab }, disposable = this) } - override fun getFontSize(): Int { - return getFontSize2D().roundToInt() - } - - override fun getFontSize2D(): Float { + override fun getFontSize(): Float { var size = fontSize if (size == null) { size = getDefaultScaledFontSize().floatValue