refactor(options): replace p_force_(on|off) with immutable (#26209)

Problem: We use the `p_force_on` and `p_force_off` variables to check if a variable is immutable and what its default value is. This is not only hacky and unintuitive, but also is limited to only boolean options.

Solution: Replace `p_force_on` and `p_force_off` with an `immutable` property for options, which indicates if an option is immutable. Immutable options cannot be changed from their default value.

Ref: #25672.
This commit is contained in:
Famiu Haque
2023-11-28 06:15:26 +06:00
committed by GitHub
parent a314703cf1
commit 3a3474371b
5 changed files with 53 additions and 50 deletions

View File

@@ -143,9 +143,13 @@ local function dump_option(i, o)
end
if o.varname then
w(' .var=&' .. o.varname)
-- Immutable options should directly point to the default value
elseif o.immutable then
w((' .var=&options[%u].def_val'):format(i - 1))
elseif #o.scope == 1 and o.scope[1] == 'window' then
w(' .var=VAR_WIN')
end
w(' .immutable=' .. (o.immutable and 'true' or 'false'))
if #o.scope == 1 and o.scope[1] == 'global' then
w(' .indir=PV_NONE')
else