The overrides a settings object carries, reduced to the ones that can
apply.
Settings come back from localStorage, where anything may have been
written: a command that no longer exists, a value that is not a string,
a shortcut that names no key. None of those should reach hotkeys-js,
which would bind them silently, so they are dropped here and the reader's
other overrides survive.
So is a shortcut that another command now runs where this one is bound.
The help menu refuses such a shortcut when the reader chooses it, but one
saved before a later release made the same key a default -- o, for the
object list -- was never checked against it, and hotkeys-js would run both
commands on the one press. The same rule is applied on the way in: the
command goes back to its default, as it would have had the reader tried
to choose the key today, and the settings show it there.
Parameters
raw: unknown
settings.general.keybindings, or anything that stood in for it
The overrides a settings object carries, reduced to the ones that can apply.
Settings come back from localStorage, where anything may have been written: a command that no longer exists, a value that is not a string, a shortcut that names no key. None of those should reach hotkeys-js, which would bind them silently, so they are dropped here and the reader's other overrides survive.
So is a shortcut that another command now runs where this one is bound. The help menu refuses such a shortcut when the reader chooses it, but one saved before a later release made the same key a default --
o, for the object list -- was never checked against it, and hotkeys-js would run both commands on the one press. The same rule is applied on the way in: the command goes back to its default, as it would have had the reader tried to choose the key today, and the settings show it there.