aboutsummaryrefslogtreecommitdiff
path: root/changelogs
diff options
context:
space:
mode:
authorisXander <xandersmith2008@gmail.com>2022-12-11 19:38:41 +0000
committerisXander <xandersmith2008@gmail.com>2022-12-11 19:38:41 +0000
commit495655630841c281d6f3e93aeb04ec3c8cb15b65 (patch)
treee8f826ae390778f29ecf815cc7944a690dff2776 /changelogs
parentd0b94812ae69a572e72580ff818ce1dcd68f1edb (diff)
downloadYetAnotherConfigLib-495655630841c281d6f3e93aeb04ec3c8cb15b65.tar.gz
YetAnotherConfigLib-495655630841c281d6f3e93aeb04ec3c8cb15b65.tar.bz2
YetAnotherConfigLib-495655630841c281d6f3e93aeb04ec3c8cb15b65.zip
changelog + version bump
Diffstat (limited to 'changelogs')
-rw-r--r--changelogs/2.0.1.md3
-rw-r--r--changelogs/2.1.0.md40
2 files changed, 40 insertions, 3 deletions
diff --git a/changelogs/2.0.1.md b/changelogs/2.0.1.md
deleted file mode 100644
index ffc66af..0000000
--- a/changelogs/2.0.1.md
+++ /dev/null
@@ -1,3 +0,0 @@
-- Allow `StringControllerElement` to have unlimited text length
-- When pressing `Delete` in a text field whilst text is highlighted,
- it will act like `Backspace` like it should.
diff --git a/changelogs/2.1.0.md b/changelogs/2.1.0.md
new file mode 100644
index 0000000..6f10824
--- /dev/null
+++ b/changelogs/2.1.0.md
@@ -0,0 +1,40 @@
+## Lists
+
+Implements mutable list options where you can create, remove and shift entries in a list.
+
+### API
+
+Lists hack option groups with their own implementation for this, so each individual list takes form as a whole option group.
+
+```java
+ListOption.createBuilder(String.class)
+ .name(Text.of("List Option"))
+ .binding(/* gets and sets a List, requires list field to be not final, does not manipulate the list */)
+ .controller(StringController::new) // usual controllers, passed to every entry
+ .initial("") // when adding a new entry to the list, this is the initial value it has
+ .build()
+```
+
+### Implementation details
+
+When implementing this, it was vital to me that _all_ controllers work with lists, not ones specifically designed
+for list entries. This was achieved quite easily by having each entry being its own option with an empty name and tooltip with its own controller, that pairs with its list "parent" to actually modify the option.
+
+Option groups were taken advantage of and hacked into its own option, only minor changes had to be made to get this
+to work with value application.
+
+Applicable controllers have been modified to expand their inputs to near full width when no name is present.
+
+### Screenshots
+
+![screenshot](https://user-images.githubusercontent.com/43245524/206871262-73e01588-9e7b-4667-8f5d-0d0bd4d48e43.png)
+
+## String improvements
+
+- Allow `StringControllerElement` to have unlimited text length
+- When pressing `Delete` in a text field whilst text is highlighted,
+ it will act like `Backspace` like it should.
+
+## Other changes
+
+- Slightly compacted elements