Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# Changelog
### 9.9.9-unreleased
### Changed
* Refreshed (encrypted) bug reporter token.
* Refreshed (encrypted) bug reporter token. ([#548](https://github.com/FWDekker/intellij-randomness/issues/548))

### Fixed
* Fixed specific settings resetting after IDE restart. Specifically, for any scheme, "Array", "Fixed Length", and "Surround With" would reset. ([#549](https://github.com/FWDekker/intellij-randomness/issues/549))


## 3.3.3 -- 2024-10-16
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ In chronological order of contribution:
* Thanks to [ForNeVeR](https://github.com/ForNeVeR) for [reporting a compatibility issue with the IntelliJ EAP](https://github.com/FWDekker/intellij-randomness/issues/459)!
* Thanks to [Vitaly Provodin](https://github.com/vprovodin) for [also reporting that compatibility issue](https://github.com/FWDekker/intellij-randomness/issues/460)!
* Thanks to [Juraj Jurčo](https://github.com/JiangHongTiao) for [suggesting adding support for newer UUID versions](https://github.com/FWDekker/intellij-randomness/issues/513)!
* Thanks to [iKa1ns](https://github.com/iKa1ns) for [reporting a bug with resetting settings](https://github.com/FWDekker/intellij-randomness/issues/549)!
* Thanks to [everyone who clicked "see details and submit report" and sent an anonymous bug report](https://github.com/FWDekkerBot/intellij-randomness-issues/issues)!

If I should add, remove, or change anything here, just open an issue or email me!
10 changes: 5 additions & 5 deletions src/main/kotlin/com/fwdekker/randomness/Scheme.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
package com.fwdekker.randomness

import com.fwdekker.randomness.affix.AffixDecorator
import com.fwdekker.randomness.array.ArrayDecorator
import com.fwdekker.randomness.fixedlength.FixedLengthDecorator
import com.intellij.util.xmlb.annotations.Transient
import com.intellij.util.xmlb.annotations.XCollection
import kotlin.random.Random


Expand Down Expand Up @@ -39,9 +35,13 @@ abstract class Scheme : State() {
* decorators, use [generateUndecoratedStrings]. Decorators are applied in ascending order. That is, the output of
* the scheme is fed into the decorator at index `0`, and that output is fed into the decorator at index `1`, and so
* on.
*
* Implementations of [Scheme] must implement the [decorators] field as a getter function, which returns a list of
* references to decorators. Each decorator must be stored in its own field, annotated with
* [com.intellij.util.xmlb.annotations.OptionTag]. This way, the deserializer knows that the field is not transient
* despite not being a mutable field.
*/
@get:Transient
@get:XCollection(elementTypes = [AffixDecorator::class, ArrayDecorator::class, FixedLengthDecorator::class])
abstract val decorators: List<DecoratorScheme>

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ data class AffixDecorator(
const val DEFAULT_ENABLED = false

/**
* The minimum valid value of the [descriptor] field.
* The default [descriptor] of the affix.
*/
const val DEFAULT_DESCRIPTOR = ""
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.fwdekker.randomness.DecoratorScheme
import com.fwdekker.randomness.OverlayIcon
import com.fwdekker.randomness.OverlayedIcon
import com.fwdekker.randomness.affix.AffixDecorator
import com.intellij.util.xmlb.annotations.OptionTag


/**
Expand All @@ -23,7 +24,7 @@ data class ArrayDecorator(
var maxCount: Int = DEFAULT_MAX_COUNT,
var separatorEnabled: Boolean = DEFAULT_SEPARATOR_ENABLED,
var separator: String = DEFAULT_SEPARATOR,
val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
@OptionTag val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
) : DecoratorScheme() {
override val name = Bundle("array.title")
override val icon get() = if (enabled) OverlayedIcon(OverlayIcon.ARRAY) else null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.fwdekker.randomness.TypeIcon
import com.fwdekker.randomness.array.ArrayDecorator
import com.fwdekker.randomness.ui.toLocalDateTime
import com.intellij.ui.JBColor
import com.intellij.util.xmlb.annotations.OptionTag
import java.awt.Color
import java.time.Instant
import java.time.format.DateTimeFormatter
Expand All @@ -24,7 +25,7 @@ data class DateTimeScheme(
var minDateTime: Long = DEFAULT_MIN_DATE_TIME,
var maxDateTime: Long = DEFAULT_MAX_DATE_TIME,
var pattern: String = DEFAULT_PATTERN,
val arrayDecorator: ArrayDecorator = ArrayDecorator(),
@OptionTag val arrayDecorator: ArrayDecorator = ArrayDecorator(),
) : Scheme() {
override val name = Bundle("datetime.title")
override val typeIcon get() = BASE_ICON
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.fwdekker.randomness.TypeIcon
import com.fwdekker.randomness.affix.AffixDecorator
import com.fwdekker.randomness.array.ArrayDecorator
import com.intellij.ui.JBColor
import com.intellij.util.xmlb.annotations.OptionTag
import java.awt.Color
import java.text.DecimalFormat
import kotlin.math.nextUp
Expand All @@ -33,8 +34,8 @@ data class DecimalScheme(
var decimalSeparator: String = DEFAULT_DECIMAL_SEPARATOR,
var groupingSeparatorEnabled: Boolean = DEFAULT_GROUPING_SEPARATOR_ENABLED,
var groupingSeparator: String = DEFAULT_GROUPING_SEPARATOR,
val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
@OptionTag val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
@OptionTag val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
) : Scheme() {
override val name = Bundle("decimal.title")
override val typeIcon get() = BASE_ICON
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import com.fwdekker.randomness.affix.AffixDecorator
import com.fwdekker.randomness.array.ArrayDecorator
import com.fwdekker.randomness.fixedlength.FixedLengthDecorator
import com.intellij.ui.JBColor
import com.intellij.util.xmlb.annotations.OptionTag
import com.intellij.util.xmlb.annotations.Transient
import java.awt.Color
import java.text.DecimalFormat
Expand All @@ -34,9 +35,9 @@ data class IntegerScheme(
var isUppercase: Boolean = DEFAULT_IS_UPPERCASE,
var groupingSeparatorEnabled: Boolean = DEFAULT_GROUPING_SEPARATOR_ENABLED,
var groupingSeparator: String = DEFAULT_GROUPING_SEPARATOR,
val fixedLengthDecorator: FixedLengthDecorator = DEFAULT_FIXED_LENGTH_DECORATOR,
val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
@OptionTag val fixedLengthDecorator: FixedLengthDecorator = DEFAULT_FIXED_LENGTH_DECORATOR,
@OptionTag val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
@OptionTag val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
) : Scheme() {
@get:Transient
override val name = Bundle("integer.title")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import com.fwdekker.randomness.string.StringScheme.Companion.LOOK_ALIKE_CHARACTE
import com.github.curiousoddman.rgxgen.RgxGen
import com.github.curiousoddman.rgxgen.parsing.dflt.RgxGenParseException
import com.intellij.ui.JBColor
import com.intellij.util.xmlb.annotations.OptionTag
import java.awt.Color
import kotlin.random.asJavaRandom

Expand All @@ -30,7 +31,7 @@ data class StringScheme(
var isNonMatching: Boolean = DEFAULT_IS_NON_MATCHING,
var capitalization: CapitalizationMode = DEFAULT_CAPITALIZATION,
var removeLookAlikeSymbols: Boolean = DEFAULT_REMOVE_LOOK_ALIKE_SYMBOLS,
val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
@OptionTag val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
) : Scheme() {
override val name = Bundle("string.title")
override val typeIcon get() = BASE_ICON
Expand Down
3 changes: 2 additions & 1 deletion src/main/kotlin/com/fwdekker/randomness/template/Template.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import com.fwdekker.randomness.string.StringScheme
import com.fwdekker.randomness.uuid.UuidScheme
import com.fwdekker.randomness.word.WordScheme
import com.intellij.ui.Gray
import com.intellij.util.xmlb.annotations.OptionTag
import com.intellij.util.xmlb.annotations.XCollection
import kotlin.random.Random

Expand All @@ -39,7 +40,7 @@ data class Template(
]
)
val schemes: MutableList<Scheme> = DEFAULT_SCHEMES,
val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
@OptionTag val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
) : Scheme() {
override val typeIcon get() = TypeIcon.combine(schemes.mapNotNull { it.typeIcon }) ?: DEFAULT_ICON
override val decorators get() = listOf(arrayDecorator)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import com.fwdekker.randomness.TypeIcon
import com.fwdekker.randomness.affix.AffixDecorator
import com.fwdekker.randomness.array.ArrayDecorator
import com.intellij.ui.Gray
import com.intellij.util.xmlb.annotations.OptionTag
import com.intellij.util.xmlb.annotations.Transient


Expand All @@ -25,8 +26,8 @@ import com.intellij.util.xmlb.annotations.Transient
data class TemplateReference(
var templateUuid: String? = null,
var capitalization: CapitalizationMode = DEFAULT_CAPITALIZATION,
val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
@OptionTag val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
@OptionTag val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
) : Scheme() {
override val name get() = template?.name?.let { "[$it]" } ?: Bundle("reference.title")
override val typeIcon get() = template?.typeIcon ?: DEFAULT_ICON
Expand Down
5 changes: 3 additions & 2 deletions src/main/kotlin/com/fwdekker/randomness/uuid/UuidScheme.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import com.fwdekker.randomness.TypeIcon
import com.fwdekker.randomness.affix.AffixDecorator
import com.fwdekker.randomness.array.ArrayDecorator
import com.intellij.ui.JBColor
import com.intellij.util.xmlb.annotations.OptionTag
import java.awt.Color
import java.util.UUID
import kotlin.random.Random
Expand All @@ -34,8 +35,8 @@ data class UuidScheme(
var version: Int = DEFAULT_VERSION,
var isUppercase: Boolean = DEFAULT_IS_UPPERCASE,
var addDashes: Boolean = DEFAULT_ADD_DASHES,
val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
@OptionTag val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
@OptionTag val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
) : Scheme() {
override val name = Bundle("uuid.title")
override val typeIcon get() = BASE_ICON
Expand Down
5 changes: 3 additions & 2 deletions src/main/kotlin/com/fwdekker/randomness/word/WordScheme.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.fwdekker.randomness.TypeIcon
import com.fwdekker.randomness.affix.AffixDecorator
import com.fwdekker.randomness.array.ArrayDecorator
import com.intellij.ui.JBColor
import com.intellij.util.xmlb.annotations.OptionTag
import java.awt.Color


Expand All @@ -22,8 +23,8 @@ import java.awt.Color
data class WordScheme(
var words: List<String> = DEFAULT_WORDS,
var capitalization: CapitalizationMode = DEFAULT_CAPITALIZATION,
val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
@OptionTag val affixDecorator: AffixDecorator = DEFAULT_AFFIX_DECORATOR,
@OptionTag val arrayDecorator: ArrayDecorator = DEFAULT_ARRAY_DECORATOR,
) : Scheme() {
override val name = Bundle("word.title")
override val typeIcon get() = BASE_ICON
Expand Down
Loading
Loading