Devolutions / Devolutions/UniGetUI
[FEATURE REQUEST] Use a human-editable InstallationOptions format instead of the current JSON
- Dominant language
- C#
- Stars
- 26.1k
- Forks
- 924
- Avg merge
- 15h 52m
- Merged PRs (30d)
- 52
Description
### Please confirm these before moving forward.
- [x] I have searched for my feature proposal and have not found a work-in-progress/duplicate/resolved/discarded issue.
- [x] This proposal is a completely new feature. If you want to suggest an improvement or an enhancement, please use [this template](https://github.com/Devolutions/UniGetUI/issues/new?labels=enhancement&projects=&template=enhancement-improvement.yml&title=%5BENHANCEMENT%5D+%28Enter+your+description+here%29).
### Describe the new feature
I'd like to be able to batch-replace `CustomParameters_Install` fields in the `Local\UniGetUI\InstallationOptions` `app.json` files, but their current formatting is awful human-readability-wise, for example, instead of
`--location "\1 Sub\2 Dir\App"` you get
```json
"CustomParameters_Install": [
"--location",
"\u0022\u003CProgramFiles\u003E\\1",
"Sub\\2",
"Dir\\App\u0022"
]
```
which makes it very hard to do a simple search&replace
Instead a few things would be much better:
- use actual `<` chars intead of their `\u1234` codes
- don't use separate fields as space seprators
- better yet, switch to a modern format that has proper raw string type so that you wouldn't need to do the `\\` abomination (one of the more expressive format I know is KDL, but any other with similar characterictis will do
Then the above would be a simple
```kdl
CustomParameters_Install #"--location "\1 Sub\2 Dir\App""#
// or, if you need key=value pairs
CustomParameters_Install --location=#""\1 Sub\2 Dir\App""#
```
which is searchable in exactly the same format you'd type it in the GUI text field
### Describe how this new feature could help users
Avoid wasting time modifying installation paths in the UI with a dozen clicks/typing operations per app
Contributor guide
Research direction
Start by locating the Local\UniGetUI\InstallationOptions app.json files and the code that reads and writes InstallationOptions, especially CustomParameters_Install. Compare the current JSON representation with the proposed human-editable format and determine the supported format and compatibility requirements. Done means installation options can be edited and batch-replaced in a readable format without breaking existing app configurations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, json
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100