-
Couldn't load subscription status.
- Fork 10
Custom data types, UDS, and templates #400
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Which means that the UDS system now supports all settings and I can start replacing old systems with UDS. Additionally, some minor changes were made to the UDS syntax to make it less error-prone.
Basic unified data syntax implementation
Basically breaks the entire settings in order to make way for the new design that will be used to centralise settings into a single UDS dialog, as discussed in #366. At the same time, most parts are not implemented fully yet so the application is now completely broken until then.
Decimals, integers, etc. can no longer be edited directly from the main menu, and their code has had all the boilerplate removed so that they are now "isolated" units that can be embedded into the UDS dialog when the context requires it. I'm not quite sure what to do with arrays, so for now they'll just behave like the UDS dialog.
To make more advantage of the fact that they no longer have to be serialised like they did before, and instead are to be typed out by users.
The goal is now to use JSON to serialise the primitives safely back and forth between its representation of an array of schemes which are individually configured. The interface will consist first of a list of available templates (currently not implemented), and then the list of schemes the template consists of in the next list. Finally, a panel from which the currently-selected scheme can be edited. The second-level list can be used by users to add new schemes, including another template because another template is also a scheme. A future goal is also to allow users to specify how arrays and repetitions and so on should work together when inserted.
Re-adds some of the optional fields that were removed in a previous commit.
It's currently super duper buggy though, I wouldn't recommend using it.
Not as buggy anymore, but still slow and some features need improvement.
Into a structure that contains much less duplication.
I think I also regressed in terms of several bugs :-(
Most significantly, makes it so that Scheme (formerly Settings) is no longer generic, which makes it much, much easier to use.
Template dialog
Including addition, icons, swapping, etc.
Template popup
This won't increase coverage, but does actually cover specific requirements set in those methods' documentations. So *true* coverage increases, but the arbitrary number doesn't.
Such as helper classes and such.
...once again. This time to allow TemplateList to be a State but not a Scheme.
Rewrite tests for v3
Two major features for v3
Templates as schemes
...in JetBrains' XML serializer, because it cannot handle Kotlin's immutable lists.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #305. Fixes #363. Fixes #365. Fixes #366.
Introduces a very large number of changes, paving the way for an eventual v3 release of Randomness. With this PR, users have the ability to create their own data types by combining multiple data types into a new data type in a single interface. This allows users to specify all kinds of data types, ranging from phones numbers to entire lorem ipsum texts.
Instead of creating a programmable template syntax as proposed in #365, the entire process is done in a simple interface. The data types that were present in Randomness v1 and v2 are now known as schemes, and schemes can be combined into templates. A template will concatenate the output of the schemes, thus allowing thorough customisation of the generated outputs. It is also possible to reuse templates in other templates.
While the most important features have been implemented in this branch, version 3.0.0 is not ready for release. There is a very large number of quality-of-life changes that have yet to be implemented, including but not limited to:
and many more.
For now, the changes of the past month will be merged into
masterbecause I think they are sufficiently stable. However, I do not consider the current version to be a release candidate.