1
0
Fork 0

Compare commits

...

3 Commits

Author SHA1 Message Date
chylex 9921409aff
Add buttons to reset colors to default values in Settings
Closes #411
2023-10-28 13:58:06 +02:00
breandan 3039b5fbb3
Merge pull request #450 from chylex/pr/kotlin-stdlib
Do not bundle kotlin stdlib
2023-10-28 00:21:29 -04:00
chylex cb3d4559f9
Do not bundle kotlin stdlib
Fixes #449
2023-10-27 20:42:45 +02:00
5 changed files with 68 additions and 22 deletions

View File

@ -2,6 +2,8 @@
## Unreleased
- Add buttons to reset colors to default values in Settings, [#411](https://github.com/acejump/AceJump/issues/411)
## 3.8.16
- Fix issue with unselectable tags, [#446](https://github.com/acejump/AceJump/issues/446)

View File

@ -2,18 +2,14 @@ import org.jetbrains.changelog.Changelog.OutputType.HTML
import org.jetbrains.changelog.date
plugins {
idea apply true
kotlin("jvm") version "1.9.20-Beta"
idea
kotlin("jvm") version "1.8.20" // https://plugins.jetbrains.com/docs/intellij/using-kotlin.html#kotlin-standard-library
id("org.jetbrains.intellij") version "1.15.0"
id("org.jetbrains.changelog") version "2.2.0"
id("com.github.ben-manes.versions") version "0.48.0"
}
tasks {
compileKotlin {
kotlinOptions.jvmTarget = JavaVersion.VERSION_17.toString()
}
named<Zip>("buildPlugin") {
dependsOn("test")
archiveFileName = "AceJump.zip"
@ -51,11 +47,7 @@ tasks {
}
kotlin {
jvmToolchain {
run {
languageVersion = JavaLanguageVersion.of(17)
}
}
jvmToolchain(17)
sourceSets.all {
languageSettings.apply {
languageVersion = "2.0"

View File

@ -1 +1,4 @@
kotlin.stdlib.default.dependency=false
kotlin.incremental.useClasspathSnapshot=false
org.gradle.jvmargs=-Xmx2048m

View File

@ -1,10 +1,10 @@
package org.acejump.config
import com.intellij.openapi.ui.ComboBox
import com.intellij.ui.ColorPanel
import com.intellij.ui.components.*
import com.intellij.ui.dsl.builder.*
import org.acejump.input.*
import org.acejump.input.JumpMode
import org.acejump.input.KeyLayout
import java.awt.*
import javax.swing.*
import javax.swing.text.JTextComponent
@ -15,6 +15,8 @@ import kotlin.reflect.KProperty
*/
@Suppress("UsePropertyAccessSyntax")
internal class AceSettingsPanel {
private val defaults = AceSettings()
private val tagCharsField = JBTextField()
private val keyboardLayoutCombo = ComboBox<KeyLayout>()
private val keyboardLayoutArea = JBTextArea().apply { isEditable = false }
@ -23,13 +25,13 @@ internal class AceSettingsPanel {
private val cycleModeCombo3 = ComboBox<JumpMode>()
private val cycleModeCombo4 = ComboBox<JumpMode>()
private val minQueryLengthField = JBTextField()
private val jumpModeColorWheel = ColorPanel()
private val jumpEndModeColorWheel = ColorPanel()
private val targetModeColorWheel = ColorPanel()
private val definitionModeColorWheel = ColorPanel()
private val textHighlightColorWheel = ColorPanel()
private val tagForegroundColorWheel = ColorPanel()
private val tagBackgroundColorWheel = ColorPanel()
private val jumpModeColorWheel = ResettableColorPicker(defaults.getJumpModeJBC())
private val jumpEndModeColorWheel = ResettableColorPicker(defaults.getJumpEndModeJBC())
private val targetModeColorWheel = ResettableColorPicker(defaults.getTargetModeJBC())
private val definitionModeColorWheel = ResettableColorPicker(defaults.getDefinitionModeJBC())
private val textHighlightColorWheel = ResettableColorPicker(defaults.getTextHighlightJBC())
private val tagForegroundColorWheel = ResettableColorPicker(defaults.getTagForegroundJBC())
private val tagBackgroundColorWheel = ResettableColorPicker(defaults.getTagBackgroundJBC())
private val searchWholeFileCheckBox = JBCheckBox()
private val mapToASCIICheckBox = JBCheckBox()
private val showSearchNotificationCheckBox = JBCheckBox()
@ -133,8 +135,8 @@ internal class AceSettingsPanel {
private operator fun JTextComponent.getValue(a: AceSettingsPanel, p: KProperty<*>) = text.lowercase()
private operator fun JTextComponent.setValue(a: AceSettingsPanel, p: KProperty<*>, s: String) = setText(s)
private operator fun ColorPanel.getValue(a: AceSettingsPanel, p: KProperty<*>) = selectedColor
private operator fun ColorPanel.setValue(a: AceSettingsPanel, p: KProperty<*>, c: Color?) = setSelectedColor(c)
private operator fun ResettableColorPicker.getValue(a: AceSettingsPanel, p: KProperty<*>) = getSelectedColor()
private operator fun ResettableColorPicker.setValue(a: AceSettingsPanel, p: KProperty<*>, c: Color?) = setSelectedColor(c)
private operator fun JCheckBox.getValue(a: AceSettingsPanel, p: KProperty<*>) = isSelected
private operator fun JCheckBox.setValue(a: AceSettingsPanel, p: KProperty<*>, selected: Boolean) = setSelected(selected)

View File

@ -0,0 +1,47 @@
package org.acejump.config
import com.intellij.icons.AllIcons
import com.intellij.openapi.actionSystem.*
import com.intellij.openapi.actionSystem.impl.ActionButton
import com.intellij.ui.ColorPanel
import com.intellij.ui.JBColor
import java.awt.*
import javax.swing.*
internal class ResettableColorPicker(private val defaultColor: JBColor) : JPanel(FlowLayout()) {
private val resetAction = object : AnAction({ "Reset to Default" }, AllIcons.General.Reset) {
override fun getActionUpdateThread(): ActionUpdateThread {
return ActionUpdateThread.EDT
}
override fun update(e: AnActionEvent) {
e.presentation.isEnabled = colorPanel.selectedColor != defaultColor
}
override fun actionPerformed(e: AnActionEvent) {
setSelectedColor(defaultColor)
}
}
private val colorPanel = ColorPanel()
private val resetButton = ActionButton(resetAction, null, ActionPlaces.UNKNOWN, ActionToolbar.DEFAULT_MINIMUM_BUTTON_SIZE)
init {
add(colorPanel)
add(resetButton)
setSelectedColor(defaultColor)
colorPanel.addActionListener {
resetButton.update()
}
}
fun getSelectedColor(): Color? {
return colorPanel.selectedColor
}
fun setSelectedColor(color: Color?) {
colorPanel.selectedColor = color
resetButton.update()
}
}