summaryrefslogtreecommitdiffstatshomepage
path: root/test/functional/script
AgeCommit message (Collapse)AuthorFiles
2026-04-16feat(docs): render class dot members as module functionsYi Ming1
AI-assisted: Codex
2025-12-15docs: misc, editorconfigJustin M. Keyes1
fix https://github.com/neovim/neovim/issues/36858
2025-12-08refactor: clint.py => clint.luaJustin M. Keyes1
Problem: `clint.py` is the last python in our codebase, and beyond that it needs some cleanup. And it lacks tests, so modifying it can be painful. Also, we need a way to add ad-hoc lint rules for *Lua*, so it will help to have our ad-hoc rules for C in the same language (the scripts may share functions/techniques): https://github.com/neovim/neovim/issues/28372 Solution: - convert to `clint.lua` (mostly AI-generated, but it now has test coverage, unlike `clint.py`) - drop rules that are no longer needed: - "readability/multiline_string" - technially still relevant, but very uncommon so doesn't really matter. - "--line-length" - Not used in the old clint.py, nor the new clint.lua. - "comment whitespace" check - It is enforced by uncrustify. - "TODO" check - The `-google-readability-function-size` clang-tidy rule enforces "TODO(user)" format. (It was already enabled long ago.)
2025-03-02docs: misc #31996Justin M. Keyes1
2025-02-26build: move all generator scripts to `src/gen/`Lewis Russell3
- Move all generator Lua scripts to the `src/gen/` - Add a `.luarc.json` to `src/gen/` - Add a `preload.lua` to `src/gen/` - Add `src` to `package.path` so it aligns with `.luarc.json' - Fix all `require` statements in `src/gen/` so they are consistent: - `require('scripts.foo')` -> `require('gen.foo')` - `require('src.nvim.options')` -> `require('nvim.options')` - `require('api.dispatch_deprecated')` -> `require('nvim.api.dispatch_deprecated')`
2024-11-25refactor(lsp): rename `offset_encoding` to `position_encoding` #31286Yi Ming1
Problem: LSP spec uses the term "position encoding" where we say "offset encoding". Solution: - Rename it everywhere except `vim.lsp.Client.offset_encoding` (which would be breaking). - Mention "position encoding" in the documentation for `vim.lsp.Client.offset_encoding`.
2024-10-04docs: render `@since` versions, 0 means experimental #30649Justin M. Keyes1
An implication of this current approach is that `NVIM_API_LEVEL` should be bumped when a new Lua function is added. TODO(future): add a lint check which requires `@since` on all new functions. ref #25416
2024-10-03docs: improve luacats support #30580James Trew1
Some composite/compound types even as basic as `(string|number)[]` are not currently supported by the luacats LPEG grammar used by gen_vimdoc. It would be parsed & rendered as just `string|number`. Changeset adds better support for these types.
2024-06-01fix(luacats): allow all types inside tuplesIlia Choly1
2024-05-31docs(luacats): add tuple supportIlia Choly1
2024-05-07docs(luacats): support backtick captured generic typeJames Trew1
Problem: While LuaCATS's generics system are still considered WIP by luals, they currently support type captured generics. See "Capture with Backtick" example: https://luals.github.io/wiki/annotations/#generic Solution: Add support for it in the LuaCATS grammar
2024-04-23test: improve test conventionsdundargoc3
Specifically, functions that are run in the context of the test runner are put in module `test/testutil.lua` while the functions that are run in the context of the test session are put in `test/functional/testnvim.lua`. Closes https://github.com/neovim/neovim/issues/27004.
2024-04-10refactor(test): inject after_each differentlyLewis Russell3
2024-04-08test: improve test conventionsdundargoc3
Work on https://github.com/neovim/neovim/issues/27004.
2024-03-09docs: support inline markdownLewis Russell2
- Tags are now created with `[tag]()` - References are now created with `[tag]` - Code spans are no longer wrapped
2024-03-05docs(lua): improvements for LSP and DiagnosticLewis Russell1
2024-03-01docs: improve/add documentation of Lua typesLewis Russell2
- Added `@inlinedoc` so single use Lua types can be inlined into the functions docs. E.g. ```lua --- @class myopts --- @inlinedoc --- --- Documentation for some field --- @field somefield integer --- @param opts myOpts function foo(opts) end ``` Will be rendered as ``` foo(opts) Parameters: - {opts} (table) Object with the fields: - somefield (integer) Documentation for some field ``` - Marked many classes with with `@nodoc` or `(private)`. We can eventually introduce these when we want to.
2024-02-27feat(docs): replace lua2dox.luaLewis Russell2
Problem: The documentation flow (`gen_vimdoc.py`) has several issues: - it's not very versatile - depends on doxygen - doesn't work well with Lua code as it requires an awkward filter script to convert it into pseudo-C. - The intermediate XML files and filters makes it too much like a rube goldberg machine. Solution: Re-implement the flow using Lua, LPEG and treesitter. - `gen_vimdoc.py` is now replaced with `gen_vimdoc.lua` and replicates a portion of the logic. - `lua2dox.lua` is gone! - No more XML files. - Doxygen is now longer used and instead we now use: - LPEG for comment parsing (see `scripts/luacats_grammar.lua` and `scripts/cdoc_grammar.lua`). - LPEG for C parsing (see `scripts/cdoc_parser.lua`) - Lua patterns for Lua parsing (see `scripts/luacats_parser.lua`). - Treesitter for Markdown parsing (see `scripts/text_utils.lua`). - The generated `runtime/doc/*.mpack` files have been removed. - `scripts/gen_eval_files.lua` now instead uses `scripts/cdoc_parser.lua` directly. - Text wrapping is implemented in `scripts/text_utils.lua` and appears to produce more consistent results (the main contributer to the diff of this change).