mirror of
https://github.com/neovim/neovim.git
synced 2025-09-10 05:18:16 +00:00
refactor(options)!: unify set_option
and set_string_option
While the interfaces for setting number and boolean options are now unified by #25394, there is still a separate `set_string_option` function that is used for setting a string option. This PR removes that function and merges it with set_option. BREAKING CHANGE: `v:option_old` is now the old global value for all global-local options, instead of just string global-local options. Local value for a global-local number/boolean option is now unset when the option is set (e.g. using `:set` or `nvim_set_option_value`) without a scope, which means they now behave the same way as string options. Ref: #25672
This commit is contained in:
@@ -681,21 +681,6 @@ static void set_option_to(uint64_t channel_id, void *to, OptReqScope req_scope,
|
||||
return;
|
||||
});
|
||||
|
||||
if (value.type == kObjectTypeNil) {
|
||||
if (req_scope == kOptReqGlobal) {
|
||||
api_set_error(err, kErrorTypeException, "Cannot unset option '%s'", name.data);
|
||||
return;
|
||||
} else if (!(flags & SOPT_GLOBAL)) {
|
||||
api_set_error(err, kErrorTypeException,
|
||||
"Cannot unset option '%s' because it doesn't have a global value",
|
||||
name.data);
|
||||
return;
|
||||
} else {
|
||||
unset_global_local_option(name.data, to);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
bool error = false;
|
||||
OptVal optval = object_as_optval(value, &error);
|
||||
|
||||
|
Reference in New Issue
Block a user