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>
Also, distinguish (by abbreviating their names) and manage
foldable kinds of syntax items: blocks of code ("b"), plain
comments ("c"), Javadoc comments ("d"), adjacent "import"
declarations ("i"). Fold all qualifying items by default;
otherwise, do not fold items of explicitly delisted kinds.
For example,
------------------------------------------------------------
let g:java_ignore_folding = "bcdi"
------------------------------------------------------------
Resolveszzzyxwvut/java-vim#12.
closes: vim/vim#18492143686b3c4
Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
Problem: Window may have wrong height if resized from another tabpage.
Solution: Improve check for whether a tabline has been added (zeertzjq).
fixes: vim/vim#18518closes: vim/vim#18519bd3b958027
Problem: MS-Windows: not possible to highlight the title bar
Solution: Make the title/caption bar configurable by introducing the
'go-C' option value which allows to highlight it using the
TitleBar and TitleBarNC highlighting groups (Mao-Yining).
Introduce titlebar color customization for Windows 11 GUI through
highlight groups and new 'guioptions' flag:
- Add 'C' flag to enable titlebar color customization (opt-in)
- New highlight groups: TitleBar (active) and TitleBarNC (inactive)
- Uses DWMWA_CAPTION_COLOR and DWMWA_TEXT_COLOR DWM attributes
- Dynamically loads dwmapi.dll for Windows 11 compatibility
- Defaults to system colors when set to NONE or feature disabled
closes: vim/vim#184492c09368273
Co-authored-by: Mao-Yining <mao.yining@outlook.com>