Fix Tab State, Add Window Restoration
Description
Fixes tab state restoration and adds window size and position restoration. Adds Codable conformance to TabGroup, TabGroupData, and SplitViewData and stores them in the workspace state on window close. They are then retrieved from the workspace state on open and used to restore tab state.
Adds window position restoration. Remembers window size and position and attempts to restore both properties when the window is opened. This applies to both workspace and single file windows. Also updates the default window sizes to match the Figma design.
Adds some state restoration code to DebugAreaViewModel for a future PR restoring the debug area view model state. And updates the workspace state API to use an enum instead of raw keys.
Related Issues
- closes #1264
- closes #1293
Checklist
- [x] I read and understood the contributing guide as well as the code of conduct
- [x] The issues this PR addresses are related to each other
- [x] My changes generate no new warnings
- [x] My code builds and runs on my machine
- [x] My changes are all related to the related issue above
- [x] I documented my code
Screenshots
https://github.com/CodeEditApp/CodeEdit/assets/35942988/77fdb316-5d30-43f9-ba17-c8965622df92