| Commit message (Collapse) | Author | Age |
... | |
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Uncrustify is the source of truth where possible.
Remove any redundant checks from clint.py.
See also https://github.com/neovim/neovim/pull/18563
Closes https://github.com/neovim/neovim/issues/17763
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This lint job will ensure that the C codebase is properly formatted at
all times. This helps eliminate most of clint.py.
To save CI time, it's faster to manually compile uncrustify and cache
the binary instead of using homebrew (the apt-get package is too old).
|
| | | |
| | | |
| | | |
| | | | |
USE_WCHAR_FUNCTIONS is never defined and we don't trust libc wchar
functions anyway.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
fs_init() must be called before early_init() in init/helpers.lua
If I run 'make unittest' on my Mac (macOS 10.14/Mojave or 12/Big Sur, intel
CPU), every test produce a core dump.
Call sequence in the core is:
early_init() main.c:197
set_init_1() option.c:508
runtimepath_default() runtime.c:1205
get_lib_dir() runtime.c:1175
os_isdir() fs.c:137
os_getperm() fs.c:777
os_stat() fs.c:761
fs_loop_lock() fs.c:72
uv_mutex_lock(&fs_loop_mutex) thread.c:352
abort()
.deps/build/src/libuv/src/unix/thread.c:
void uv_mutex_lock(uv_mutex_t* mutex) {
if (pthread_mutex_lock(mutex))
abort(); // line 352
}
So pthread_mutex_lock(&fs_loop_mutex) failed. The reason seems to be simple.
fs_init() was not called and fs_loop_mutex has not been initialized. fs_init()
was moved out from early_init() in main.c by
b87867e69e94d9784468a126f21c721446f080de, but unit/helpers.lua was not updated
accordingly.
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Neovim currently falls in the 100 kLOC - 500 kLOC bucket, which can scan
3x/day.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The earlier vsnprintf() call checks whether str->items is NULL, sets of
the "possible NULL" spidey sense. kv_ensure_space() guarantees
str->items is non-NULL but since it doesn't use NULL checks to decide
whether to alloc, static analyzers can't tell this code path is safe.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
user is passed in by the caller, which we internally copy. We should be
freeing our copy, not the caller's string.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
register_cfunc allocates a ufunc_T, but doesn't store the pointer
anywhere before returning. The uf_name member variable is stored in a
hashtable and used to lookup the ufunc_T later, but that's too much for
Coverity to track.
Adding the annotation ensures that any new callers to register_cfunc
don't pop up as new "leaks" in the Coverity scans.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Coverity was reporting false positives, particularly around for non-NUL
terminated strings around uses of xmemdupz(). The updated model
ensures Coverity understands xmemdupz allocates an extra byte and sets it
to NUL as well as the main details of our other allocation related
wrappers.
|
| |\ \ \ \
| | | | | |
| | | | | | |
fix: prevent crash when statusline expression sets value of 'winbar'
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Closes #18649
|
| | | | | | |
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
refactor: move reverse_text to strings.c as it's a string operation
|
| | |/ / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Also add tests for reverse_text.
Co-authored-by: Kalle Ranki <kalle.ranki@gmail.com>
|
| |\ \ \ \ \
| | |/ / / /
| |/| | | | |
vim-patch:8.2.4985: PVS warns for possible array underrun
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Problem: PVS warns for possible array underrun.
Solution: Add a check for a positive value. (closes vim/vim#10451)
https://github.com/vim/vim/commit/875339b22a989d0782097036169e8fb9e2100d7e
|
| |\ \ \ \
| | | | | |
| | | | | | |
fix: make `nvim_cmd` not suppress errors inside key mapping
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Closes #18632
|
| | |/ / /
| |/| | |
| | | | |
| | | | | |
Fix vim.lsp.buf.(range_)code_action() to only send diagnostics belonging
to the current buffer and not to other files in the workspace.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
warn (#18636)
Problem: When 'shortmess' contains 'A' loading a session may still warn for
an existing swap file. (Melker Österberg)
Solution: Keep the 'A' flag to 'shortmess' in the session file.
(closes vim/vim#10443)
https://github.com/vim/vim/commit/aaadb5b6f76ea03e5eb460121f3dbf46ad04ce50
Use readfile() with "B" flag in test as readblob() needs patch 8.2.2343.
|
| |\ \ \ \
| | | | | |
| | | | | | |
fix(ui): make `winbar` properly equalize window heights for local value
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fixes `'winbar'` not properly equalizing window heights for splits when
the global value is empty and a window-local value is set instead.
|
| |\ \ \ \ \
| | | | | | |
| | | | | | | |
Fix mouse drag position with winbar
|
| | | | | | | |
|
| |/ / / / / |
|
| |\ \ \ \ \
| | |_|/ / /
| |/| | | | |
treesitter: small improvements of languagetree.lua
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Problem: Accessing freed memory when line is flushed.
Solution: Make a copy of the pattern to search for.
https://github.com/vim/vim/commit/28d032cc688ccfda18c5bbcab8b50aba6e18cde5
|
| |\ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Having two methods of setting the same option is redundant and can be
potentially confusing. Recommend adding 's' to 'shortmess' instead.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
An option that should always be kept on except for when working with old
Vi scripts is of little use to us.
|
| | | | | | | |
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
fix(ui): make winbar work with floats and multigrid
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
This was not necessary after the introduction of `resize_events`,
after which ui resizes are not `fast_events` anymore.
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | | |
|
| | |/ / / / /
| |/| | | | | |
|
| |\ \ \ \ \ \ |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Allow get_active_clients() to filter on client name, id, or buffer. This
(soft) deprecates lsp.buf_get_clients().
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
The current approach of using `on_attach` callbacks for configuring
buffers for LSP is suboptimal:
1. It does not use the standard Nvim interface for driving and hooking
into events (i.e. autocommands)
2. There is no way for "third parties" (e.g. plugins) to hook into the
event. This means that *all* buffer configuration must go into the
user-supplied on_attach callback. This also makes it impossible for
these configurations to be modular, since it all must happen in the
same place.
3. There is currently no way to do something when a client detaches from
a buffer (there is no `on_detach` callback).
The solution is to use the traditional method of event handling in Nvim:
autocommands. When a LSP client is attached to a buffer, fire a
`LspAttach`. Likewise, when a client detaches from a buffer fire a
`LspDetach` event.
This enables plugins to easily add LSP-specific configuration to buffers
as well as enabling users to make their own configurations more modular
(e.g. by creating multiple LspAttach autocommands that each do
something unique).
|
| |\ \ \ \ \ \ \
| | |/ / / / / /
| |/| | | / / /
| | | |_|/ / /
| | |/| | | | |
fix(ui): set correct position on mouse click when 'winbar' is enabled
|