livesplit-core
livesplit-core copied to clipboard
Implement Subsplits
This is a work in progress implementation of Subsplits. Instead of encoding the subsplits information into the segment names we extend the run format properly so the subsplits information can be stored. This is the roadmap for this Pull Request:
- [x] Parse the original modified segment names and rewrite them to be normal segment names.
- [x] Store the subsplits information in the Run structure
- [ ] Extend the splits component to handle the additional subsplits information.
- [x] Implement basic support for subsplits.
- [ ] Extend the "always show all splits" option to precalculate the maximum size necessary.
- [ ] Add columns to the opened group headers.
- [ ] Add setting for keeping previous group headers scrolled in.
- [ ] Implement focus changing manual scrolling (scrolling should be able to open up other groups).
- [ ] Handle columns that are based on relative times (such as segment times) on collapsed group headers. (e.g. it should be the combined segment time of the whole group, not just of the last segment in the group). Also add a test for this.
- [x] Extend the splits format to store the subsplits information.
- [x] Parse the subsplits information from the splits format.
- [ ] Empty group names are the same as non-existing group names, this doesn't match the behavior elsewhere.
- [ ] What to do about out of range groups?
- [ ] There could be a group that is directly at the end such that it returns a view with an empty slice. That breaks a few assumptions.
- [ ] Extend the Run Editor to support the subsplits.
- [ ] Add Documentation.
- [ ] Add Tests.
- [ ] Make sure the final split doesn't scroll the window back to the beginning.
- [ ] Improve horizontal support (such as the indentation not really making too much sense maybe)
Closes #36