A better rule of thumb for session variables would be anything the user does not or cannot set explicitly. Or put another way, Geany should avoid resetting/undoing what the user has explicitly set. If there is a setting in the preferences dialog, or elsewhere, it should not be a session config. This has precedence, for instance, with the filetype auto-detection. Geany does *not* redetect filetype on reload because the user *might* have explicitly changed it.
* MRU – session – not explicitly set by the user * Window position and geometry – session – not explicitly set by the user * Sidebar/msgwin location – *not* session – explicitly set by user in preferences. * Sidebar/msgwin position – session – not explicitly set by user. (The user can change it, but this is an *implicit* change. There is no *explicit* setting in preferences or elsewhere.)
-----
@elextr Your definition is overly inclusive. Only a handful of settings don't fit your criteria as session variables. You essentially confirm this when you stated, "I have defaulted to yes if I'm unsure". (You give a different reason for that default, but using an unsuitable definition of "session" would contribute that that problem.)
The core of the definition you suggest is:
a setting that an individual user is likely to change, possibly often...
That would be detected by running diff on sequential config files (as I suggested). Although I did not mention collecting samples from multiple users, I pretty much took it as a given since it is a common, well-known approach to avoid over-specificity. Configs that change more frequently across a greater number of users are better candidates than configs that do or don't change for only one (or a few).
and it doesn't affect the files being edited
That part is arbitrary. You and other devs have described project files as just "named sessions". You state that indent settings are *not* session config, but indent settings are part of project files (indicating that it likely *is* session config).
There are only a handful of settings that affect the edited file. Default encoding, line endings. The vast majority of other settings affect the editing environment (eg, GUI), but not the edited files.