Replace KotlinInquirer
Feature request
As already discussed, KotlinInquirer is an unmaintained repository, which is the source of some bugs and workarounds which cannot be adressed without replacing the tool. We therefore plan to use kotter to 'rebuild' the parts of KotlinInquirer that we used.
Description
As a developer, I want KotlinInquirer to be replaced so that we have more control over issues in the cli that occur because KotlinInquirer is an old, unmaintained repo.
Acceptance criteria
- All questions from KotlinInquirer that we use is rebuilt
- All parsers are refactored to use the new functions
- KotlinInquirer is removed from all dependencies
Necessary refactoring
As all kotter questions need to be inside a 'session' block and only one session block can be used per executed command, the codes structure needs to be refactored, so that a session is only started in one single place.
Development notes (optional Task Breakdown)
- [x] Implement used functions of KotlinInquirer
- [x] confirm dialog
- [x] Input dialog
- [x] number-input dialog
- [x] select entry from list dialog
- [x] select multiple entries from list (checkbox) dialog
- [ ] Test if all implemented functions behave like their counterparts
- [ ] Write tests for new functions
- [ ] Insert new functions into parsers
Open questions
- Do we use this opportunity to improve the cli?
- Autocomplete of filepaths
- Handling of invalid inputs directly in the question -> Has to be done as normal logging does not work inside of a kotter session
- Loading icons once a parser is started so user knows the program is still running
- What workarounds did we have to do because of KotlinInquirers limitations and can we build them into our new functions?
- Which bugs were caused by KotlinInquirer that can now be fixed?
- Issue #3355
Are there still open questions @Nereboss?
During integration we noticed a bug when calling kotter methods from different files. This bug has been reported to the developer who is working on a fix but until then this is blocked
The bug that blocked this issue has been fixed by the developer, we can continue working on this issue