aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* fix: merge all provider healthchecks into a single health.luadundargoc2024-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | This will help manage the overly granular checkhealth completion to go from ``` vim.health vim.lsp vim.provider.clipboard vim.provider.node vim.provider.perl vim.provider.python vim.provider.ruby vim.treesitter ``` to ``` vim.health vim.lsp vim.provider vim.treesitter ```
* docs: move vim.health documentation to lua.txtdundargoc2024-05-22
| | | | | | `vim.health` is not a "plugin" but part of our Lua API and the documentation should reflect that. This also helps make the documentation maintenance easier as it is now generated.
* refactor(lsp): use supports_method where applicableIlia Choly2024-05-22
|
* vim-patch:62ccaa6: runtime(termdebug): check for gdb file/dir before using ↵zeertzjq2024-05-22
| | | | | | | | | | | | as buffer name (#28908) Add test so that this doesn't regress. fixes: vim/vim#12718 closes: vim/vim#14792 https://github.com/vim/vim/commit/62ccaa60d5f7f9a13c758bd5e55b7ca6855a6de9 Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@volvo.com>
* vim-patch:d1d9316: runtime(zig): refactor zig ftplugin, remove auto format ↵Gregory Anders2024-05-21
| | | | | | | | | | | | | (#28904) Refactored zig ftplugin, removed upstream comment, aucmd and auto formatting support. Updated documentation for zig configuration settings and added new maintainer. closes: vim/vim#13803 https://github.com/vim/vim/commit/d1d9316c6621d275593f58664975faf0fc23985f Co-authored-by: Tiseno <mathias.lindgren@stabelo.se>
* vim-patch:9.1.0427: tests: some issues with termdebug mapping test (#28907)zeertzjq2024-05-22
| | | | | | | | | | | | | Problem: tests: some issues with termdebug mapping test Solution: Use assert_{true,false} if suitable, change order of expected and actual arguments in assert() calls. (Ken Takata) closes: vim/vim#14818 related: 7fbbd7f https://github.com/vim/vim/commit/ffed1540f36eb4a2255d7d824c9466d3d8fd581e Co-authored-by: Ken Takata <kentkt@csc.jp>
* Merge pull request #28905 from zeertzjq/vim-9.1.0426zeertzjq2024-05-22
|\ | | | | vim-patch:9.1.{0426,0428}: too many strlen() calls in search.c
| * vim-patch:9.1.0428: Tag guessing leaves wrong search history with very short ↵zeertzjq2024-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | names Problem: Tag guessing leaves wrong search history with very short names (after 9.1.0426). Solution: Use the correct variable for pattern length (zeertzjq). closes: vim/vim#14817 https://github.com/vim/vim/commit/42cd192daa4b7f29131c7be1beaecb6067e96266 Cherry-pick Test_tagbsearch() changes from patch 9.0.0767.
| * vim-patch:9.1.0426: too many strlen() calls in search.czeertzjq2024-05-22
|/ | | | | | | | | | | | | Problem: too many strlen() calls in search.c Solution: refactor code and remove more strlen() calls, use explicit variable to remember strlen (John Marriott) closes: vim/vim#14796 https://github.com/vim/vim/commit/8c85a2a49acf80e4f53ec51e6ff2a5f3830eeddb Co-authored-by: John Marriott <basilisk@internode.on.net>
* fix(lsp): detach all clients on_reload to force buf_state reload (#28875)Ilia Choly2024-05-21
| | | | | | Problem: The changetracking state can de-sync when reloading a buffer with more than one LSP client attached. Solution: Fully detach all clients from the buffer to force buf_state to be re-created.
* docs: how to get core dump files #28826Jongwook Choi2024-05-21
| | | | | | | | | | | | | Problem: Docs about how to obtain backtraces on Linux is not very beginner-friendly; some users used to have difficulties in getting stacktrace against Nvim crash. For instance, the `core` dump file might not appear in the current directory on Ubuntu systems with apport, and the current docs do not fully cover such cases. Solution: Add more hints about where core dump files can be found. For example, on Ubuntu where apport is managing core dump files, users would want to find them in `/var/lib/apport/coredump`.
* fix(lsp): semantic token functions allow "0" bufnr #28849Riley Bruins2024-05-21
| | | aligns with ":help dev-patterns"
* fix(lsp): hide layout in codelenses in virtual text (#28794) (#28807)Mango The Fourth2024-05-21
| | | | | | | Problem: layout i.e. whitespace that is part of codelenses is currently displayed as weird symbols and large amounts of spaces Solution: replace all consecutive whitespace symbols with a single space character when trying to display codelenses as virtual text
* feat(signs)!: place higher-priority signs from the left #27781Tobias Schmitz2024-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Higher-priority signs may be hidden by lower-priority signs. Solution: Place higher-priority signs from the left. Example: nvim_buf_set_extmark(0, ns, 0, -1, {sign_text='H', priority=1}) nvim_buf_set_extmark(0, ns, 0, -1, {sign_text='W', priority=2}) nvim_buf_set_extmark(0, ns, 0, -1, {sign_text='E', priority=3}) Before: | | H | W E | ^ | | Not visible After: | | | E W | H | | ^ Not visible Fixes #16632
* fix(lsp): add textDocument/documentLink to capability map (#28838)Ilia Choly2024-05-21
|
* build(vim-patch.sh): include commit subject #28767Jongwook Choi2024-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: vim-patch commits lack an informative title and summary in the very first line of the commit message when the vim-revision is a Git SHA hash, unlike when is a Vim version. This makes it difficult to discern at a glance what changes are introduced by such vim-patch commits (in git log, PR title, changelog generated by git-cliff, etc.). BEFORE: vim-patch:abcdef123456 runtime(vim): improve performance <some details> ... Solution: Repeat the title of the upstream commit message, to improve the clarity and visibility of the commit message. AFTER: vim-patch:abcdef123456: runtime(vim): improve performance <some details> ... Note: the `vim-patch:<hash>` token is still needed by `vim-patch.sh` (but not necessarily in the very first line of the commit message) to determine which vim patches have been applied. `<hash>` is internally normalized to 7 hex digits.
* fix(tui): remove duplicate disabling of synchronized output (#28884)zeertzjq2024-05-21
| | | Synchronized output is enabled and disabled inside flush_buf().
* vim-patch:8cf29e4c4a2aChristian Clason2024-05-21
| | | | | | | | | | runtime(matchit): update matchit plugin to v1.20 fixes: vim/vim#14814 https://github.com/vim/vim/commit/8cf29e4c4a2af75bf31ef16ef108aea61c165af8 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:8.2.1520: Vim9: CTRL-] used in :def function does not work (#28880)zeertzjq2024-05-21
| | | | | | | | Problem: Vim9: CTRL-] used in :def function does not work. Solution: Omit count or prepend colon. (closes vim/vim#6769) https://github.com/vim/vim/commit/b3ea36c5bcb88b6a05a66347eedd461e9385103f Co-authored-by: Bram Moolenaar <Bram@vim.org>
* vim-patch:69dff00dfb37Christian Clason2024-05-20
| | | | | | | | | | runtime(verilog): set commentstring option closes: vim/vim#14810 https://github.com/vim/vim/commit/69dff00dfb37077f4a80fd9635ea963889ad4b49 Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* vim-patch:9.1.0399: block_editing errors out when using del (#28867)zeertzjq2024-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | Problem: block_editing errors out when using del (@Jamarley) Solution: Change ins_len from size_t to int and properly check that it doesn't become negative There is a check in os.c that verifies that `ins_len` does not become negative: ``` if (pre_textlen >= 0 && (ins_len = len - pre_textlen - offset) > 0) ``` However this only works, if ins_len can actually become negative and unfortunately, ins_len has been declared as `size_t` so instead of becoming negative it will wrap around and be very large. So let's define it as integer, after which the condition above properly catches this condition. fixes: vim/vim#14734 closes: vim/vim#14735 https://github.com/vim/vim/commit/d5c8c0920e1eee9ff7a9fa5168d8e85c01670630 Co-authored-by: Christian Brabandt <cb@256bit.org>
* Merge pull request #28854 from zeertzjq/vim-9.1.0394zeertzjq2024-05-20
|\ | | | | vim-patch:9.1.{0394,0395,0423}: getregionpos()
| * vim-patch:9.1.0423: getregionpos() wrong with blockwise mode and multibytezeertzjq2024-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: getregionpos() wrong with blockwise mode and multibyte. Solution: Use textcol and textlen instead of start_vcol and end_vcol. Handle coladd properly (zeertzjq). Also remove unnecessary buflist_findnr() in add_regionpos_range(), as getregionpos() has already switched buffer. closes: vim/vim#14805 https://github.com/vim/vim/commit/c95e64f41f7f6d1bdc95b047ae9b369743c8637b
| * vim-patch:9.1.0395: getregionpos() may leak memory on errorzeertzjq2024-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: regionpos may leak memory on error, coverity complains about dereferencing Null pointer Solution: free all list pointers (after v9.1.394), return early if buflist_findnr() returns NULL closes: vim/vim#14731 https://github.com/vim/vim/commit/b8ecedce79149ac6b994177e9a68979f86065cb1 Co-authored-by: Christian Brabandt <cb@256bit.org>
| * vim-patch:9.1.0394: Cannot get a list of positions describing a regionzeertzjq2024-05-20
|/ | | | | | | | | | | | | | | Problem: Cannot get a list of positions describing a region (Justin M. Keyes, after v9.1.0120) Solution: Add the getregionpos() function (Shougo Matsushita) fixes: vim/vim#14609 closes: vim/vim#14617 https://github.com/vim/vim/commit/b4757e627e6c83d1c8e5535d4887a82d6a5efdd0 Co-authored-by: Shougo Matsushita <Shougo.Matsu@gmail.com> Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
* vim-patch:9.1.0425: filetype: purescript files are not recognizedChristian Clason2024-05-20
| | | | | | | | | | | | | | | Problem: filetype: purescript files are not recognized Solution: recognize '*.purs' files as purescript filetype, include basic purescript filetype plugin (Riley Bruins) Reference: https://github.com/purescript/documentation/blob/master/language/Syntax.md#comments closes: vim/vim#14813 https://github.com/vim/vim/commit/155583a5c317881e60828e3972383436ac197ee8 Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* vim-patch:9.1.0424: filetype: slint files are not recognizedChristian Clason2024-05-20
| | | | | | | | | | | | | Problem: filetype: slint files are not recognized Solution: Detect '*.slint' files as slint filetype, include basic sling filetype plugin (Riley Bruins) closes: vim/vim#14808 https://github.com/vim/vim/commit/aa3104b07a3e5e7cc41310f1fbfb00f71ef801a2 Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* vim-patch:f295050fa524Christian Clason2024-05-20
| | | | | | | | | | runtime(nim): basic nim ftplugin file for comments (vim/vim#14812) Reference: https://nim-by-example.github.io/comments/#:~:text=Comments%20in%20Nim%20begin%20with%20the%20hash%20character.&text=Multiline%20or%20block%20comments%20begin,line%20comments%20can%20be%20nested. https://github.com/vim/vim/commit/f295050fa524b3a58289d12d3477b52a8610794f Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* vim-patch:957d903cb7afChristian Clason2024-05-20
| | | | | | | | | | | | | | runtime(arduino): Add Arduino ftplugin and indent files (vim/vim#14811) We already have Arduino syntax file, but we didn't have ftplugin and indent files. This commit adds a basic ftplugin file and a basic indent file. Both of them are derived from {ftplugin,indent}/c.vim. https://github.com/vim/vim/commit/957d903cb7af41539efd3195d053293987af85d9 Co-authored-by: K.Takata <kentkt@csc.jp>
* vim-patch:c3d5c2fc8721Christian Clason2024-05-20
| | | | | | | | | | runtime(typst): include basic typst ftplugin file (vim/vim#14809) Reference: https://typst.app/docs/reference/syntax/#comments https://github.com/vim/vim/commit/c3d5c2fc87212865ee73738cd381ddbaf8132c33 Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* vim-patch:9c4d14dbb4baChristian Clason2024-05-20
| | | | | | | | | | runtime(prisma): include basic prisma ftplugin file (vim/vim#14807) Reference: https://www.prisma.io/docs/orm/prisma-schema/overview#comments https://github.com/vim/vim/commit/9c4d14dbb4baeb909ff62a943aed24968e3be6fe Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* vim-patch:1b5e3d21f6f3Christian Clason2024-05-20
| | | | | | | | runtime(v): include basic v ftplugin for comment support (vim/vim#14806) https://github.com/vim/vim/commit/1b5e3d21f6f321824b3c4552a9fff24feeb64aab Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* vim-patch:9.1.0409: too many strlen() calls in the regexp engine (#28857)zeertzjq2024-05-20
| | | | | | | | | | | | | | | | | Problem: too many strlen() calls in the regexp engine Solution: refactor code to retrieve strlen differently, make use of bsearch() for getting the character class (John Marriott) closes: vim/vim#14648 https://github.com/vim/vim/commit/82792db6315f7c7b0e299cdde1566f2932a463f8 Cherry-pick keyvalue_T and its comparison functions from patch 9.1.0256. vim-patch:9.1.0410: warning about uninitialized variable vim-patch:9.1.0412: typo in regexp_bt.c in DEBUG code Co-authored-by: John Marriott <basilisk@internode.on.net>
* vim-patch:9.1.0421: filetype: hyprlang files are not recognizedChristian Clason2024-05-20
| | | | | | | | | | | | | Problem: filetype: hyprlang files are not recognized Solution: recognize 'hypr{land,paper,idle,lock}.conf' files as 'hyprlang' filetype, add hyprlang ftplugin (Riley Bruins) closes: vim/vim#14803 https://github.com/vim/vim/commit/5f1b115afd92544ce64d563da0d8ee9844abb10a Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* vim-patch:4d7892bfb1dbChristian Clason2024-05-20
| | | | | | | | | | | runtime(dart): add basic dart ftplugin file fixes vim/vim#14793 closes vim/vim#14802 https://github.com/vim/vim/commit/4d7892bfb1dbcc8ba19d9c60c63b3d11b758553f Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* vim-patch:36e974fdf3f5Christian Clason2024-05-20
| | | | | | | | | | runtime(graphql): basic ftplugin file for graphql closes: vim/vim#14801 https://github.com/vim/vim/commit/36e974fdf3f5db1126bb8211e5a12462258da167 Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* vim-patch:df859a36d390Christian Clason2024-05-20
| | | | | | | | | | runtime(sql): set commentstring for sql files in ftplugin closes: vim/vim#14800 https://github.com/vim/vim/commit/df859a36d390bda4241760155a0d2ae0be1bcbe9 Co-authored-by: Riley Bruins <ribru17@hotmail.com>
* fix(diagnostic): show backtrace for deprecation warningsJongwook Choi2024-05-20
| | | | | | | | | | | | Problem: On nvim 11.0-dev, deprecation warnings due to an use of hard-deprecated APIs such as: - `vim.diagnostic.disable()` - `vim.diagnostic.is_disabled()` etc. are not accompanied by backtrace information. It makes difficult for users to figure out which lines or which plugins are still using deprecated APIs. Solution: use `backtrace = true` in vim.deprecate() call.
* refactor!: remove `nvim` and `provider` module for checkhealthdundargoc2024-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The namespacing for healthchecks for neovim modules is inconsistent and confusing. The completion for `:checkhealth` with `--clean` gives ``` nvim provider.clipboard provider.node provider.perl provider.python provider.ruby vim.lsp vim.treesitter ``` There are now three top-level module names for nvim: `nvim`, `provider` and `vim` with no signs of stopping. The `nvim` name is especially confusing as it does not contain all neovim checkhealths, which makes it almost a decoy healthcheck. The confusion only worsens if you add plugins to the mix: ``` lazy mason nvim nvim-treesitter provider.clipboard provider.node provider.perl provider.python provider.ruby telescope vim.lsp vim.treesitter ``` Another problem with the current approach is that it's not easy to run nvim-only healthchecks since they don't share the same namespace. The current approach would be to run `:che nvim vim.* provider.*` and would also require the user to know these are the neovim modules. Instead, use this alternative structure: ``` vim.health vim.lsp vim.provider.clipboard vim.provider.node vim.provider.perl vim.provider.python vim.provider.ruby vim.treesitter ``` and ``` lazy mason nvim-treesitter telescope vim.health vim.lsp vim.provider.clipboard vim.provider.node vim.provider.perl vim.provider.python vim.provider.ruby vim.treesitter ``` Now, the entries are properly sorted and running nvim-only healthchecks requires running only `:che vim.*`.
* refactor(path.c): add nonnull attributes (#28829)zeertzjq2024-05-19
| | | This possibly fixes the coverity warning.
* vim-patch:94043780196c (#28831)zeertzjq2024-05-18
| | | | | | | runtime(matchparen): fix :NoMatchParen not working (vim/vim#14797) fixes: neovim/neovim#28828 https://github.com/vim/vim/commit/94043780196cc66d23eeec10e2c722c6552324e0
* vim-patch:cf78d0df51f2Christian Clason2024-05-18
| | | | | | | | runtime(sshdconfig): add basic ftplugin file for sshdconfig (vim/vim#14790) https://github.com/vim/vim/commit/cf78d0df51f2737f278a2410f166862001d875ae Co-authored-by: Yinzuo Jiang <jiangyinzuo@foxmail.com>
* vim-patch:9.1.0418: Cannot move to previous/next rare word (#28822)zeertzjq2024-05-18
| | | | | | | | | | | | Problem: Cannot move to previous/next rare word (Colin Kennedy) Solution: Add the ]r and [r motions (Christ van Willegen) fixes: vim/vim#14773 closes: vim/vim#14780 https://github.com/vim/vim/commit/8e4c4c7d87def2b100a5d64dc518ef85d9de8765 Co-authored-by: Christ van Willegen - van Noort <github.com@vanwillegen-vannoort.nl>
* fix(move): half-page scrolling with resized grid at eob (#28821)zeertzjq2024-05-18
|
* Merge pull request #28790 from luukvbaal/vim-9.1.0414zeertzjq2024-05-18
|\ | | | | vim-patch:9.1.{0414,0416}
| * vim-patch:9.1.0414: Unable to leave long line with 'smoothscroll' and ↵Luuk van Baal2024-05-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'scrolloff' Problem: Unable to leave long line with 'smoothscroll' and 'scrolloff'. Corrupted screen near the end of a long line with 'scrolloff'. (Ernie Rael, after 9.1.0280) Solution: Only correct cursor in case scroll_cursor_bot() was not itself called to make the cursor visible. Avoid adjusting for 'scrolloff' beyond the text line height (Luuk van Baal) https://github.com/vim/vim/commit/b32055e504ebd4f6183a93b92b08d61dad61c841 vim-patch:9.1.0416: some screen dump tests can be improved Problem: some screen dump tests can be improved (after 9.1.0414) Solution: Make sure screen state changes properly and is captured in the screen dumps (Luuk van Baal) https://github.com/vim/vim/commit/2e642734f4be506483315b8881748a7ef45854f4
* | ci: change label `backport` to `target:release`dundargoc2024-05-17
| | | | | | | | | | `backport` is too similar `ci:backport release-x.y` and causes confusion.
* | fix(vim.iter): enable optimizations for arrays (lists with holes) (#28781)Gregory Anders2024-05-17
| | | | | | | | | | | | | | | | The optimizations that vim.iter uses for array-like tables don't require that the source table has no holes. The only thing that needs to change is the determination if a table is "list-like": rather than requiring consecutive, integer keys, we can simply test for (positive) integer keys only, and remove any holes in the original array when we make a copy for the iterator.
* | feat(api): broadcast events to ALL channels #28487Justin M. Keyes2024-05-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: `vim.rpcnotify(0)` and `rpcnotify(0)` are documented as follows: If {channel} is 0, the event is broadcast to all channels. But that's not actually true. Channels must call `nvim_subscribe` to receive "broadcast" events, so it's actually "multicast". - Assuming there is a use-case for "broadcast", the current model adds an extra step for broadcasting: all channels need to "subscribe". - The presence of `nvim_subscribe` is a source of confusion for users, because its name implies something more generally useful than what it does. Presumably the use-case of `nvim_subscribe` is to avoid "noise" on RPC channels not expected a broadcast notification, and potentially an error if the channel client reports an unknown event. Solution: - Deprecate `nvim_subscribe`/`nvim_unsubscribe`. - If applications want to multicast, they can keep their own multicast list. Or they can use `nvim_list_chans()` and `nvim_get_chan_info()` to enumerate and filter the clients they want to target. - Always send "broadcast" events to ALL channels. Don't require channels to "subscribe" to receive broadcasts. This matches the documented behavior of `rpcnotify()`.
* | fix(path): avoid chdir() when resolving path (#28799)zeertzjq2024-05-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use uv_fs_realpath() instead. It seems that uv_fs_realpath() has some problems on non-Linux platforms: - macOS and other BSDs: this function will fail with UV_ELOOP if more than 32 symlinks are found while resolving the given path. This limit is hardcoded and cannot be sidestepped. - Windows: while this function works in the common case, there are a number of corner cases where it doesn't: - Paths in ramdisk volumes created by tools which sidestep the Volume Manager (such as ImDisk) cannot be resolved. - Inconsistent casing when using drive letters. - Resolved path bypasses subst'd drives. Ref: https://docs.libuv.org/en/v1.x/fs.html#c.uv_fs_realpath I don't know if the old implementation that uses uv_chdir() and uv_cwd() also suffers from the same problems. - For the ELOOP case, chdir() seems to have the same limitations. - On Windows, Vim doesn't use anything like chdir() either. It uses _wfullpath(), while libuv uses GetFinalPathNameByHandleW().