Problem: Build failure without the +eval feature.
Solution: Use other error message. Avoid warnings.
a9549c9e8f
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Previously contents in makeDefine are nearly highlighted as Define, so
comments and targets shares the same color as Define, making it hard to
distinguish if someone write large block of targets-recipes as defined
function.
Such scenario is common in building data analysis pipeline. Recipes are
reused and targets may have multiple variables, and a single % implicit
rule is not enough.
closes: vim/vim#184032a33b499a3
Co-authored-by: Yiyang Wu <xgreenlandforwyy@gmail.com>
Problem: nvim_parse_cmd('exe "ls"|edit foo', {}) fails to separate
nextcmd, returning args as { '"ls"|edit', 'foo' } instead of { '"ls"' }
with nextcmd='edit foo'.
Solution: Skip expressions before checking for '|' separator.
Both links to libXpm and mysyntax.vim are up but the listed
libXpm version is not offered anymore and mysyntax.vim is no
longer served at all. The link for searching dictionary
extensions of Apache OpenOffice is broken; an alternative
link can be discovered from the home page. Finally, the
English dictionaries Apache OpenOffice extension is probably
gone for good (is it incompatible with more recent versions
of the suite?) as its page neither available directly nor
discoverable through search.
closes: 18549
40dec4609d
Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
Housekeeping:
- Add GitHub repository link
- Update Last Change date
Style:
- Add Vim modeline for consistent formatting
- Unify indentation style (spaces to tabs)
- Wrap long cluster definitions for readability
New Features:
- Add highlighting for escape sequences
- Add error highlighting for invalid rune literals
- Add syntax-based folding support
Fixes:
- Fix rune matching to allow only a single character/escape
- Fix highlighting for double-quoted rune literals
- Fix highlighting for floats with exponents and type suffixes
37c8ce7fac
Co-authored-by: Wu Junkai <wujunkai20041123@outlook.com>
Co-authored-by: dkearns <dougkearns@gmail.com>
fix(help): only set url for nvim-owned tags
Problem:
1. gx on |nonexistingtag| opens
https://neovim.io/doc/user/helptag.html?nonexistingtag.
2. b:undo_ftplugin doesn't remove url extmarks.
Solution:
1. Check if the tag is defined in a help file in $VIMRUNTIME.
2. Solution: clear namespace for buffer in b:undo_ftplugin.
Fixes issue on mac where it was constantly reloading buffers as paths
were not being normalized and resolved correctly (in relation to buffer
name).
Quickfix entry:
/var/folders/pt/2s7dzyw12v36tsslrghfgpkr0000gn/T/git-difftool.m95lj8/right/app.vue
Buffer name:
/private/var/folders/pt/2s7dzyw12v36tsslrghfgpkr0000gn/T/git-difftool.m95lj8/right/app.vue
/var was synlinked to /private/var and this was not being properly
handled.
Also added lazy redraw to avoid too many redraws when this happens in
future and added test for symlink handling.
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
Problem
As part of https://github.com/neovim/neovim/pull/34373 a unit test was
added that executes the `write` command. This causes a file to be
created named `Xtestfile-functional-shada-buffers-2`. In general tests
should cleanup resources they create.
Solution
Remove the call to `write`, test functions correctly without it.
- Always open the right window to the right, regardless of 'splitright'
setting, ensuring the left window is always leftmost.
- Use `vim.fn.systemlist` for diffr output to avoid manual splitting.
- Add a test to verify window layout consistency with 'splitright' and
'nosplitright' options.
- Escape quotes in git difftool example properly.
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
Problem
In `vim.pack` the source of any errors is included in the `update`
buffer from lua's `pcall` method. Since the full path is known it is
replaced in the unit test by the string `VIM_PACK_RUNTIME`. The issue is
that `pcall` does not necessarily include the full path, it instead uses
the `lua_Debug` `short_src` value which can be truncated. This means
depending on where you've cloned the repo locally the test can fail.
Solution
Change the replacement pattern for the traceback to be more generic and
handle any path prefix, not just the value of `vim.env.VIMRUNTIME`.
Problem:
1. Setting `pumborder=+,+,+,+,+,+,+,+` failed to render the custom
border characters correctly. The issue occurred in `parse_winborder()`
where it incorrectly used `p_winborder` instead of the `border_opt`
parameter when the option value didn't contain commas.
2. In `pum_redraw()`, calling `parse_border_style()` directly with the
option string failed to parse comma-separated border characters.
3. Missing documentation for PmenuShadow and PmenuShadowThrough
highlight groups used by the shadow border style.
4. Coverity reports CID 631420: passing WinConfig (480 bytes) by value
in `grid_draw_border()`.
5. crash when using `shadow` value on pumborder.
Solution:
1. Fix `parse_winborder()` to use `border_opt` parameter consistently,
ensuring the correct option value is parsed regardless of which
option (winborder/pumborder) is being set.
2. Update `pum_redraw()` to call `parse_winborder()` instead of
`parse_border_style()`, properly handling both predefined styles
and custom comma-separated border characters.
3. Add documentation for PmenuShadow (blended shadow areas) and
PmenuShadowThrough (see-through corners) highlight groups.
4. Change `grid_draw_border()` to accept WinConfig by pointer.
5. When the "shadow" style is used, no additional row and column offset
is applied, and the border width is reduced.
Problem:
Built-in diff mode (nvim -d) does not support directory diffing
as required by git difftool -d. This makes it difficult to compare
entire directories, detect renames, and navigate changes efficiently.
Solution:
Add a DiffTool plugin and command that enables side-by-side diffing of
files and directories in Neovim. The plugin supports rename detection,
highlights changes in the quickfix list, and provides a user command for
easy invocation. This allows proper integration with git difftool -d for
directory comparison.
Example git config:
```ini
[diff]
tool = nvim_difftool
[difftool "nvim_difftool"]
cmd = nvim -c "packadd nvim.difftool" -c "DiffTool $LOCAL $REMOTE"
```
Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
Co-authored-by: Phạm Bình An <111893501+brianhuster@users.noreply.github.com>
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
* fix(lsp): type of root_dir should be annotated with string|fun|nil
* feat(lsp): support root_dir as function in _get_workspace_folders
* feat(lsp): let checkhealth support root_dir() function
Examples:
vim.lsp: Active Clients ~
- lua_ls (id: 1)
- Version: <Unknown>
- Root directories:
~/foo/bar
~/dev/neovim
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
Problem: when splitkeep=screen, after enlarge float window with
nvim_win_set_height, lines("w$") return stale value
Solution: update in win_set_inner_size
Problem:
Difference in highlight color between normal lines and extmark lines is
distracting and conveys little information.
Solution:
Set extmarks highlight to the Normal group.
Problem: :fclose may crash Nvim if autocommands close floats prematurely.
Alternatively, :fclose may call win_close for windows not in curtab if
autocommands change curtab or move windows between tab pages via
nvim_win_set_config (may not crash, but is wrong).
Solution: check win_valid before calling win_close.
Problem: Valgrind warning for using uninitialized variable.
Solution: Initialize the type of newtv.
dd7eff0a75
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Compiler warning for uninitialized variable.
Solution: Use another variable to decide to restore option values.
b4011afe53
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem
Similar to https://github.com/neovim/neovim/pull/33257, but for the date
component. When timezone is behind UTC the epoch date of individual
components mismatch causing the test to fail.
Solution
The `epoch` variable is created using `os.date` with a `!`, which means
format the date in UTC instead of local timezone:
https://www.lua.org/manual/5.1/manual.html#pdf-os.date.
Since the individual components like year, month, and day are expected
to match `epoch` they should all be created using a `!` as well.
Problem: Old Coverity warning for not checking ftell() return value.
Solution: Check return value of fseek() and ftell().
3df8f6e353
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Coverity warning for strcpy() into fixed size array.
Solution: Add a type cast to hopefully silence the bogus warning.
7b6903f02c
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem:
Popup menu cannot have a border.
Solution:
Support 'pumborder' option.
Generalize `win_redr_border` to `grid_redr_border`,
which redraws border for window grid and pum grid.
vim-patch:8.1.1989: the evalfunc.c file is still too big
vim-patch:8.2.0379: gcc warns for ambiguous else
vim-patch:8.2.0510: Coverity complains about using uninitialized variable
vim-patch:8.2.0566: Vim9: variable can be used uninitialized
vim-patch:8.2.1908: Lua is initialized even when not used
vim-patch:8.2.2313: Vim9: using uninitialized field when parsing range
vim-patch:8.2.2374: accessing uninitialized memory in test_undo
vim-patch:8.2.2509: tests fail on s390 build
vim-patch:8.2.2572: Vim9: crash when getting the types for a legacy function
vim-patch:8.2.3134: crash when using typename() on a function reference
vim-patch:8.2.3527: gcc complains about uninitialized variable
vim-patch:8.2.3653: terminal ANSI colors may be wrong
vim-patch:8.2.3755: Coverity warns for using a buffer in another scope
vim-patch:8.2.3770: new compiler warnings from clang-12 and clang-13
vim-patch:8.2.3875: gcc complains about buffer overrun
vim-patch:8.2.3893: Vim9: many local variables are initialized with an instruction
vim-patch:8.2.4017: gcc warns for misleading indent in Athena menu code
vim-patch:8.2.4023: using uninitialized variable
vim-patch:8.2.4126: crash on exit when built with dynamic Tcl
vim-patch:8.2.4468: Coverity warns for uninitialized struct member
vim-patch:8.2.4471: Coverity warns for uninitialized variable
vim-patch:8.2.4661: Coverity warning for using uninitialized variable
vim-patch:8.2.4779: lsan suppression is too version specific
vim-patch:8.2.4995: still a compiler warning for possibly uninitialized variable
vim-patch:8.2.5005: compiler warning for uninitialized variable
vim-patch:8.2.5068: gcc 12.1 warning when building tee
vim-patch:8.2.5069: various warnings from clang on MS-Windows
vim-patch:8.2.5073: clang on MS-Windows produces warnings
vim-patch:8.2.5075: clang gives an out of bounds warning
vim-patch:8.2.5085: gcc gives warning for signed/unsigned difference
vim-patch:8.2.5087: cannot build with clang on MS-Windows
vim-patch:9.0.0395: clang warnings for function prototypes
vim-patch:9.0.0860: MS-Windows: windres fails with clang 15.0.4
vim-patch:9.0.1088: clang warns for unused variable
vim-patch:9.0.1517: MacOS: configure removes -O2 from $CFLAGS
vim-patch:9.0.1685: silence Python 3.11 depreciations for gcc
vim-patch:9.0.1716: Windows build with python 3.12 and clang fails
vim-patch:9.0.1913: if_python: undefined behaviour for function pointers
vim-patch:9.0.1930: compiler warnings with clang-17
vim-patch:9.0.1971: macOS: FEAT_SOUND guard too restrictive
vim-patch:9.1.0066: gcc complains about use of uninitialized var
vim-patch:9.1.0067: gcc still complains about use of uninitialized var
vim-patch:9.1.0588: The maze program no longer compiles on newer clang
vim-patch:9.1.0827: CI: tests can be improved
vim-patch:9.1.0833: CI: recent ASAN changes do not work for indent tests
vim-patch:9.1.0846: debug symbols for xxd are not cleaned in Makefile
vim-patch:9.1.0884: gcc warns about uninitialized variable
vim-patch:9.1.0946: cross-compiling fails on osx-arm64
vim-patch:9.1.1189: if_python: build error due to incompatible pointer types
vim-patch:9.1.1347: small problems with gui_w32.c
vim-patch:9.1.1358: if_lua: compile warnings with gcc15
vim-patch:9.1.1365: MS-Windows: compile warnings and too many strlen() calls
vim-patch:9.1.1686: if_ruby: unknown pragma when not using gcc
vim-patch:9.1.1729: CI is not run with clang 21
vim-patch:9.1.1765: f_isnan() and f_isinf() do not correctly initialize rettv type
vim-patch:9.1.1767: Patch v9.1.1765 was wrong
vim-patch:9.1.1812: completion: flicker with slow LSPs
vim-patch:9.1.1814: Patch v9.1.1812 causes crashes
Problem:
On MacOS it is a relatively common pattern to set XDG_RUNTIME_DIR under
`/tmp` or `/var`. Both of these are symlinks to `/private/tmp` and
`/private/var`. When checking for loopback the input address is
normalized using `fix_fname`, however this is not applied to the
addresses of the sockets. As a result of one address being normalized
and the other not the comparison would fail.
Solution:
Normalize both sides of the comparison using `fix_fname`.
Problem: tests: Test_search_stat_option() may fail on slow systems
Solution: test_search_stat: Extend searchcount() timeout if the test is
being re-run due to flakiness (James McCoy).
closes: vim/vim#185244fa7ec8036
Co-authored-by: James McCoy <jamessan@jamessan.com>
The docs for fuzzy matching seems to try to list every possible use
case, but misses this one. It's a good idea to be consistent.
closes: vim/vim#185251388fa62d2
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
- Use the optional tail command-name spec at :help :syntime.
- Match full :syntime command and highlight args.
7dba04f15c
Documentation changes only.
Co-authored-by: Doug Kearns <dougkearns@gmail.com>