The Zed team rebuilt their settings editor from scratch, moving from a distributed, macro-based architecture to a centralized, strongly-typed model. The refactoring consolidated scattered settings definitions into UserSettings and ProjectSettings types, treating configuration files as the organizing principle rather than implementation details. They enhanced their GPUI framework with automated focus handling through tab groups and local state management similar to React's useState. The project revealed architectural weaknesses (including an auto-update bug) but resulted in a cleaner foundation for future features.

10m read timeFrom zed.dev
Post cover image
Table of contents
So much complexityCentralizing settings as strong typesFiles as the organizing principleBuilding the Settings Editor in GPUIWhat this unlocksWhy the big rewrite?Ownership and data flow in GPUIGPUI 2 is now in production
2 Comments

Sort: