neovim/scripts
Famiu Haque 29ded88957
refactor(options): remove .indir, redesign option scopes #31066
Problem:
The way option scopes currently work is inflexible and does not allow for nested
option scopes or easily finding the value of an option at any arbitrary scope
without having to do long handwritten switch-case statements like in
`get_varp()`. `.indir` is also confusing and redundant since option indices for
each scope can be autogenerated.

Solution:
Expand option scopes in such a way that an option can support any amount of
scopes using a set of scope flags, similarly to how it's already done for option
types. Also make options contain information about its index at each scope it
supports. This allows for massively simplifying `get_varp()` and
`get_varp_scope()` in the future by just using a struct for options at each
scope. This would be done by creating a table that stores the offset of an
option's variable at a scope by using the option's index at that scope as a key.
This PR also autogenerates enums for option indices at each scope to remove the
need for `.indir` entirely, and also to allow easily iterating over options all
options that support any scope.

Ref: #29314
2024-11-16 12:56:16 -08:00
..
bump_deps.lua feat(vim.validate): improve fast form and deprecate spec form 2024-10-21 11:32:06 +01:00
cdoc_grammar.lua feat(docs): replace lua2dox.lua 2024-02-27 14:41:17 +00:00
cdoc_parser.lua feat(docs): replace lua2dox.lua 2024-02-27 14:41:17 +00:00
check_urls.vim vim-patch:1c5728e0c4a9 (#28703) 2024-05-11 18:14:03 +08:00
cliff.toml build(release.sh): use git cliff, drop old script 2024-05-16 00:19:17 +02:00
download-unicode-files.sh build(lintsh): double quote to prevent word splitting (#21571) 2022-12-28 22:50:24 +01:00
gen_eval_files.lua refactor(options): remove .indir, redesign option scopes #31066 2024-11-16 12:56:16 -08:00
gen_filetype.lua build: enable lintlua for scripts/ dir #26391 2023-12-04 12:38:31 -08:00
gen_help_html.lua docs: misc 2024-10-23 14:13:42 +02:00
gen_lsp.lua feat(lsp)!: remove client-server handlers from vim.lsp.handlers 2024-11-01 09:17:39 +00:00
gen_vimdoc.lua fix(lsp.protocal): improve typing of constants 2024-10-24 10:53:03 +01:00
genappimage.sh build: various fixes 2024-02-01 12:06:55 +01:00
lintcommit.lua ci(lintcommit): allow capitalized letter after colon in description (#29480) 2024-06-26 05:08:15 +08:00
lintdoc.lua build(docs): separate lint job to validate vimdoc #27227 2024-01-28 14:22:39 -08:00
luacats_grammar.lua docs: improve luacats support #30580 2024-10-03 03:45:51 -07:00
luacats_parser.lua fix(gen_vimdoc): correctly generate function fields 2024-06-22 20:00:13 +01:00
release.sh build(release.sh): set VIMRUNTIME when regenerating docs (#28765) 2024-05-16 07:21:19 +08:00
shadacat.py
update_terminfo.sh build(terminfo): include user capabilities in comments (#28066) 2024-03-28 10:23:07 +08:00
util.lua fix(docs): markdown instead of vimdoc in meta docstrings #30680 2024-10-06 03:24:21 -07:00
vim-patch.sh vim-patch: make gen_opt_test.vim work with Nvim (#30850) 2024-10-18 17:38:29 +08:00
vimpatch.lua build: enable lintlua for scripts/ dir #26391 2023-12-04 12:38:31 -08:00
windows.ti feat(tui): support undercurl in WezTerm (#28037) 2024-03-26 14:25:01 +08:00