* fix(runtime/health): mitigate issues with duplicate healthchecks
Previously if a healthcheck was found as Lua and Vim it was executed
both times.
This new implementations prefers Lua, therefore if two are found It only
runs the Lua one, this way a plugin can mantain both implementations the
Lua one with the method `check()` and the autoload function `#check()`
(for none HEAD nvim versions).
**Note: This will require plugins to use `check()` as the function name,
since the autoload function that wraps the lua implementation won't be
called**
* docs(health): use spaces and don't overuse backtics
followup to #15259
Problem: Warnings from MinGW compiler. (John Marriott) Json test fails when
building without +float feature.
Solution: Init variables. Fix Json parsing. Skip a few tests that require
the +float feature.
a5d5953d59
Omit vim9 changes.
vim9 internal implementation is N/A,
similar to the `vimscript-*` features.
N/A patches for version.c:
vim-patch:8.1.0737: compiler warning for uninitialized variable
Problem: Compiler warning for uninitialized variable.
Solution: Add initialization. (John Marriott)
e519dfd713
vim-patch:8.1.1385: signed/unsigned compiler warning
Problem: Signed/unsigned compiler warning.
Solution: Use STRLEN() instead of strlen().
71de720c2c
vim-patch:8.2.0165: Coverity warning for using NULL pointer
Problem: Coverity warning for using NULL pointer.
Solution: Add missing "else".
5b18c248d3
vim-patch:8.2.0166: Coverity warning for using uninitialized variable
Problem: Coverity warning for using uninitialized variable.
Solution: Check for failure.
07da94b0f0
vim-patch:8.2.0167: Coverity warning for ignoring return value
Problem: Coverity warning for ignoring return value.
Solution: Check the return value and jump if failed.
58ceca5cae
"src/testdir/test_vim9*.vim" files are N/A
because vim9 code is currently unsupported.
vim-patch:8.2.0168: Coverity warning for assigning NULL to an option
Problem: Coverity warning for assigning NULL to an option.
Solution: Use empty string instead of NULL.
97a2af39cd
vim-patch:8.2.0169: Coverity warning for dead code
Problem: Coverity warning for dead code.
Solution: Check if inside try-finally.
8cbd6dfc0c
vim-patch:8.2.0170: Coverity warning for ignoring return value
Problem: Coverity warning for ignoring return value.
Solution: Check the return value and return if failed.
a6d536829a
vim-patch:8.2.0172: Coverity warning for not restoring character
Problem: Coverity warning for not restoring character.
Solution: Restore the character also in case of failure.
4549ece47c
vim-patch:8.2.0254: compiler warning for checking size_t to be negative
Problem: Compiler warning for checking size_t to be negative.
Solution: Only check for zero. (Zoltan Arpadffy)
ae8d2de3a9
vim-patch:8.2.0326: compiler warning for using uninitialized variable
Problem: Compiler warning for using uninitialized variable. (Yegappan
Lakshmanan)
Solution: Do not jump to failed but return.
d5aec0ced1
vim-patch:8.2.3387: compiler warning for non-static function
Problem: Compiler warning for non-static function.
Solution: Make the function static. (Dominique Pellé, closesvim/vim#8816)
de05ae7158
Adds the following API functions.
- nvim_buf_set_mark(buf, name, line, col)
* Set marks in a buffer.
- nvim_buf_del_mark(buf, name)
* Delete a mark that belongs to buffer.
- nvim_del_mark(name)
* Delete a global mark.
- nvim_get_mark(name)
* Get a global mark.
Tests:
- Adds test to all the new api functions, and adds more for the existing
nvim_buf_get_mark.
* Tests include failure cases.
Documentation:
- Adds documentation for all the new functions, and improves the
existing fucntion docs.
* Add optional second table argument to vim.json.decode which takes
a table 'luanil' which can include the 'object' and/or 'array' keys. These
options use luanil when converting NULL in json objects and arrays
respectively. The default behavior matches the original lua-cjson.
* Remove recursive_convert_NIL function from rpc.lua, use
vim.json.decode with luanil = { object = true } instead. This removes a hotpath
in the json deserialization pipeline by dropping keys with json NULL
values throughout the deserialized table.
Switch libuv from https://github.com/neovim/libuv fork to upstream for WIN32.
Upstream at 1.42.0 is now used for all platforms.
BREAKING CHANGE: removes Windows 7 support
BREAKING CHANGE: removes support for mouse and alternate buffers in TUI for
Windows 8 and 8.1
Move away from providing completion with ExpandRTDir to ExpandGeneric
providing the function get_healthcheck_name which caches the results for
the current command line prompt.
It does the almost the same thing the Vim function 'get_healthcheck'
implemented in 'runtime/autoload/health.vim' does.
- Add tests for lua healthchecks (failure, success and submodules).
- Reword some of the test naming for improved logs readability.
- Modify render test to accomodate the changes of the health autoload function.
- Add test for :checkhealth completion of Lua healtchecks.
- Refactor health.vim to discover lua healthcheck in the runtime
directories lua/**/health{/init}.lua
- Support healthchecks for lua submodules e.g :checkhealth vim.lsp and
also support wildcard "*" at the end for all submodules
:checkhealth vim*
- Refactor health.vim to use variable scope instead of output capturing
- Create health.lua module to wrap report functions and future
extensibility.
- Move away from searching just in the runtimepath, use
`nvim_get_runtime_file` due to #15632
Example:
Plugin linter in rtp can declare it's checkhealts in lua module
`lua/linter/health{/init}.lua` that returns a table with a method
"check" that when executed calls the report functions provided by the
builtin lua module require("health").
The plugin also has a submodule `/lua/linter/providers` in which it
defines `/lua/linter/providers/health{/init}.lua`
This plugin healthcheck can now be run by the ex command:
`:checkhealth linter linter.providers`
Also calling all submodules can be done by:
`:checkhealth linter*
And "linter" and "linter.provider" would be discovered when:
`:checkhealth`
Do not copy a lot of lua strings (dict keys) to just strequal() them
Just compare them directly to a dedicated hash function.
feat(generators): HASHY McHASHFACE