mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 06:50:54 +07:00
WEB-67976 Limit inlay hints margin change to only JS / TS
GitOrigin-RevId: e8268c53d1b08c2e3b1898e26546f9d6c61f9860
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7474c73550
commit
d9ae467dcd
@@ -1263,19 +1263,29 @@ e:com.intellij.codeInsight.hints.declarative.HintFontSize
|
||||
- s:values():com.intellij.codeInsight.hints.declarative.HintFontSize[]
|
||||
f:com.intellij.codeInsight.hints.declarative.HintFormat
|
||||
- sf:Companion:com.intellij.codeInsight.hints.declarative.HintFormat$Companion
|
||||
- <init>(com.intellij.codeInsight.hints.declarative.HintColorKind,com.intellij.codeInsight.hints.declarative.HintFontSize):V
|
||||
- <init>(com.intellij.codeInsight.hints.declarative.HintColorKind,com.intellij.codeInsight.hints.declarative.HintFontSize,com.intellij.codeInsight.hints.declarative.HintMarginPadding):V
|
||||
- f:component1():com.intellij.codeInsight.hints.declarative.HintColorKind
|
||||
- f:component2():com.intellij.codeInsight.hints.declarative.HintFontSize
|
||||
- f:copy(com.intellij.codeInsight.hints.declarative.HintColorKind,com.intellij.codeInsight.hints.declarative.HintFontSize):com.intellij.codeInsight.hints.declarative.HintFormat
|
||||
- bs:copy$default(com.intellij.codeInsight.hints.declarative.HintFormat,com.intellij.codeInsight.hints.declarative.HintColorKind,com.intellij.codeInsight.hints.declarative.HintFontSize,I,java.lang.Object):com.intellij.codeInsight.hints.declarative.HintFormat
|
||||
- f:component3():com.intellij.codeInsight.hints.declarative.HintMarginPadding
|
||||
- f:copy(com.intellij.codeInsight.hints.declarative.HintColorKind,com.intellij.codeInsight.hints.declarative.HintFontSize,com.intellij.codeInsight.hints.declarative.HintMarginPadding):com.intellij.codeInsight.hints.declarative.HintFormat
|
||||
- bs:copy$default(com.intellij.codeInsight.hints.declarative.HintFormat,com.intellij.codeInsight.hints.declarative.HintColorKind,com.intellij.codeInsight.hints.declarative.HintFontSize,com.intellij.codeInsight.hints.declarative.HintMarginPadding,I,java.lang.Object):com.intellij.codeInsight.hints.declarative.HintFormat
|
||||
- equals(java.lang.Object):Z
|
||||
- f:getColorKind():com.intellij.codeInsight.hints.declarative.HintColorKind
|
||||
- f:getFontSize():com.intellij.codeInsight.hints.declarative.HintFontSize
|
||||
- f:getHorizontalMarginPadding():com.intellij.codeInsight.hints.declarative.HintMarginPadding
|
||||
- hashCode():I
|
||||
- f:withColorKind(com.intellij.codeInsight.hints.declarative.HintColorKind):com.intellij.codeInsight.hints.declarative.HintFormat
|
||||
- f:withFontSize(com.intellij.codeInsight.hints.declarative.HintFontSize):com.intellij.codeInsight.hints.declarative.HintFormat
|
||||
- f:withHorizontalMargin(com.intellij.codeInsight.hints.declarative.HintMarginPadding):com.intellij.codeInsight.hints.declarative.HintFormat
|
||||
f:com.intellij.codeInsight.hints.declarative.HintFormat$Companion
|
||||
- f:getDefault():com.intellij.codeInsight.hints.declarative.HintFormat
|
||||
e:com.intellij.codeInsight.hints.declarative.HintMarginPadding
|
||||
- java.lang.Enum
|
||||
- sf:MarginAndSmallerPadding:com.intellij.codeInsight.hints.declarative.HintMarginPadding
|
||||
- sf:OnlyPadding:com.intellij.codeInsight.hints.declarative.HintMarginPadding
|
||||
- s:getEntries():kotlin.enums.EnumEntries
|
||||
- s:valueOf(java.lang.String):com.intellij.codeInsight.hints.declarative.HintMarginPadding
|
||||
- s:values():com.intellij.codeInsight.hints.declarative.HintMarginPadding[]
|
||||
f:com.intellij.codeInsight.hints.declarative.InlayActionData
|
||||
- <init>(com.intellij.codeInsight.hints.declarative.InlayActionPayload,java.lang.String):V
|
||||
- equals(java.lang.Object):Z
|
||||
|
||||
@@ -4,16 +4,19 @@ package com.intellij.codeInsight.hints.declarative
|
||||
data class HintFormat(
|
||||
val colorKind: HintColorKind,
|
||||
val fontSize: HintFontSize,
|
||||
val horizontalMarginPadding: HintMarginPadding,
|
||||
) {
|
||||
companion object {
|
||||
val default = HintFormat(
|
||||
HintColorKind.Default,
|
||||
HintFontSize.AsInEditor,
|
||||
HintMarginPadding.OnlyPadding,
|
||||
)
|
||||
}
|
||||
|
||||
fun withColorKind(newColorKind: HintColorKind) = copy(colorKind = newColorKind)
|
||||
fun withFontSize(newFontSize: HintFontSize) = copy(fontSize = newFontSize)
|
||||
fun withHorizontalMargin(newHorizontalMarginPadding: HintMarginPadding) = copy(horizontalMarginPadding = newHorizontalMarginPadding)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -29,3 +32,8 @@ enum class HintFontSize {
|
||||
AsInEditor,
|
||||
ABitSmallerThanInEditor
|
||||
}
|
||||
|
||||
enum class HintMarginPadding {
|
||||
OnlyPadding,
|
||||
MarginAndSmallerPadding,
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ data class InlayData(
|
||||
|
||||
companion object {
|
||||
// increment on format changed
|
||||
private const val SERDE_VERSION = 5
|
||||
private const val SERDE_VERSION = 6
|
||||
}
|
||||
|
||||
override fun serdeVersion(): Int = SERDE_VERSION + treeExternalizer.serdeVersion()
|
||||
@@ -40,6 +40,7 @@ data class InlayData(
|
||||
writeTooltip(output, inlayData.tooltip)
|
||||
output.writeUTF(inlayData.hintFormat.colorKind.name)
|
||||
output.writeUTF(inlayData.hintFormat.fontSize.name)
|
||||
output.writeUTF(inlayData.hintFormat.horizontalMarginPadding.name)
|
||||
treeExternalizer.save(output, inlayData.tree)
|
||||
writeUTF(output, inlayData.providerId)
|
||||
output.writeBoolean(inlayData.disabled)
|
||||
@@ -52,13 +53,14 @@ data class InlayData(
|
||||
val tooltip: String? = readTooltip(input)
|
||||
val hintColorKind: HintColorKind = HintColorKind.valueOf(input.readUTF())
|
||||
val hintFontSize: HintFontSize = HintFontSize.valueOf(input.readUTF())
|
||||
val hintHorizontalMarginPadding = HintMarginPadding.valueOf(input.readUTF())
|
||||
val tree: TinyTree<Any?> = treeExternalizer.read(input)
|
||||
val providerId: String = readUTF(input)
|
||||
val disabled: Boolean = input.readBoolean()
|
||||
val payloads: List<InlayPayload>? = readPayloads(input)
|
||||
val providerClass: Class<*> = ZombieInlayHintsProvider::class.java
|
||||
val sourceId: String = readSourceId(input)
|
||||
return InlayData(position, tooltip, HintFormat(hintColorKind, hintFontSize), tree, providerId, disabled, payloads, providerClass, sourceId)
|
||||
return InlayData(position, tooltip, HintFormat(hintColorKind, hintFontSize, hintHorizontalMarginPadding), tree, providerId, disabled, payloads, providerClass, sourceId)
|
||||
}
|
||||
|
||||
private fun writePosition(output: DataOutput, position: InlayPosition) {
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.intellij.openapi.editor.markup.TextAttributes
|
||||
import com.intellij.openapi.util.NlsContexts
|
||||
import com.intellij.ui.LightweightHint
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
import com.intellij.util.containers.enumMapOf
|
||||
import com.intellij.util.ui.GraphicsUtil
|
||||
import com.intellij.util.ui.withTranslated
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
@@ -37,8 +38,10 @@ class InlayPresentationList(
|
||||
) {
|
||||
companion object {
|
||||
private val NOT_COMPUTED = DeclarativeHintWidth(-1, -1, -1)
|
||||
private const val HORIZONTAL_PADDING = 6
|
||||
private const val HORIZONTAL_MARGIN = 2
|
||||
private val MARGIN_PADDING_BY_FORMAT = enumMapOf<HintMarginPadding, Pair<Int, Int>>().apply {
|
||||
put(HintMarginPadding.OnlyPadding, 0 to 7)
|
||||
put(HintMarginPadding.MarginAndSmallerPadding, 2 to 6)
|
||||
}
|
||||
private const val ARC_WIDTH = 8
|
||||
private const val ARC_HEIGHT = 8
|
||||
private const val BACKGROUND_ALPHA: Float = 0.55f
|
||||
@@ -153,7 +156,8 @@ class InlayPresentationList(
|
||||
size = metrics.font.size2D
|
||||
fontName = metrics.font.family
|
||||
val textWidth = entries.sumOf { it.computeWidth(metrics) }
|
||||
computedWidth = DeclarativeHintWidth(HORIZONTAL_MARGIN, HORIZONTAL_PADDING, textWidth)
|
||||
val (margin, padding) = MARGIN_PADDING_BY_FORMAT[hintFormat.horizontalMarginPadding]!!
|
||||
computedWidth = DeclarativeHintWidth(margin, padding, textWidth)
|
||||
return computedWidth
|
||||
}
|
||||
return computedWidth
|
||||
|
||||
Reference in New Issue
Block a user