contour-terminal / contour

Modern C++ Terminal Emulator
http://contour-terminal.org/
Apache License 2.0
2.38k stars 102 forks source link

Refactor configuration file loading #1282

Closed christianparpart closed 1 month ago

christianparpart commented 11 months ago

The current way of loading the config file has been incrementally growing, and thus, also its technical debt. It's time to clean the last(?) dark corner of the source code up.

Main design goals

Config file syntax

At first I think it should remain YAML, but i'm not hard-lining here. Later on the following come into my mind, iff it turns out to be an all-inclusive upgrade:

Yaraslaut commented 1 month ago

Info about missing entries implemented in https://github.com/contour-terminal/contour/pull/1585 At the moment, we do not upgrade user config file to preserve comments and if implemented in simplest way upgrade will cause user profiles to specify all values while we allow to set specific values in the profile. Implementation of complete upgrade will require some time and can be done in the future

Yaraslaut commented 1 month ago

At the moment config loading let easily add config entries and we can generate default config and missing entries from executable, extending to other formats will lead to copy of read/write logic and can be postpones until reflection will appear in c++ (hopefully 26)