aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* fix(gen_help_html): first tag in h2 is broken #30720Justin M. Keyes2024-10-08
| | | | | | | | | | | | | | | Problem: In h2 headings, the first tag points to an invalid anchor. This used to work but regressed a few months ago, possibly related to ceea6898a8bdcb6c4cfe06b8dc4739c144e6b1f8. Solution: - Simplify the logic, don't try to be clever: - Always use to_heading_tag() for the h2 `id`. - Also: - Render tags as `<span>`, because `<code>` is unnecessary and doesn't look great in headings. - In the main h1, use "foo.txt" as the anchor `name` (rarely used), prefer the next found tag for the `href`.
* fix: deps build for ARM64 MSVCJohnny Shaw2024-10-08
| | | | | | | | | | | Problem: Neovim will not build for ARM64 using MSVC due to misconfigured gettext dependency build settings. Solution: Fix the dependency build settings for gettext when building with MSVC.
* vim-patch:4f51f3a: runtime(spec): set comments and commentstring optionsChristian Clason2024-10-08
| | | | | | | | closes: vim/vim#15817 https://github.com/vim/vim/commit/4f51f3a5732725a25ff64f509506c9c81b1c96a5 Co-authored-by: Andreas Schneider <asn@cryptomilk.org>
* vim-patch:9.1.0766: too many strlen() calls in ex_getln.c (#30715)zeertzjq2024-10-08
| | | | | | | | | | | Problem: too many strlen() calls in ex_getln.c Solution: refactor the code to reduce the number of strlen() calls (John Marriott) closes: vim/vim#15809 https://github.com/vim/vim/commit/ccf8907570e14396e265b742e51f5089fdf97bf5 Co-authored-by: John Marriott <basilisk@internode.on.net>
* fix(coverity/510275): linematch out of bounds access (#30687)Devon Gardner2024-10-07
| | | | | | | | Problem: Int pointer cast to unsigned long pointer causes potential memory corruption. Solution: Cast and store value first, then pass the new pointer.
* vim-patch:9.1.0765: No test for patches 6.2.418 and 7.3.489 (#30713)zeertzjq2024-10-07
| | | | | | | | | Problem: No test for patches 6.2.418 and 7.3.489 Solution: Add a test. Fix some whitespace problems in test_mapping.vim. Document the behavior (zeertzjq). closes: vim/vim#15815 https://github.com/vim/vim/commit/5df3cb2898d8b4ad42ac367a436afc79bffecfb4
* fix(drawline): correct highlight priority with Visual selection (#30706)zeertzjq2024-10-08
|
* vim-patch:7c3f9af: runtime(misc): unset compiler in various ftpluginsChristian Clason2024-10-07
| | | | | | | | | | just to foster best practices closes: vim/vim#15798 https://github.com/vim/vim/commit/7c3f9af0ed5dd7035f8a3fbb2f0bf965a453e359 Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
* vim-patch:af449f6: runtime(compiler): add cppcheck linter compiler pluginChristian Clason2024-10-07
| | | | | | | | closes: vim/vim#15804 https://github.com/vim/vim/commit/af449f69c7cc9f0ffafaa6e0d028dccd1c358763 Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
* docs: dev-arch, focusable windows #30510Justin M. Keyes2024-10-07
| | | | - 'statuscolumn' is no longer experimental - add tags for popular searches on neovim.io
* fix(lsp): tagfunc fails in unusual buffer #30700Justin M. Keyes2024-10-07
| | | | | | | | | | | | | | | | Problem: tagfunc failed in a weird buffer (either a directory or some other non-file buffer, I don't remember): E987: Invalid return value from tagfunc E5108: Error executing lua …/runtime/lua/vim/lsp/util.lua:311: EISDIR: illegal operation on a directory stack traceback: at this line: local data = assert(uv.fs_read(fd, stat.size, 0)) Solution: Check for directory.
* docs: generate params/returns in builtin.txt #30654Justin M. Keyes2024-10-07
|
* vim-patch:9.1.0764: [security]: use-after-free when closing a buffer (#30705)zeertzjq2024-10-07
| | | | | | | | | | | | | Problem: [security]: use-after-free when closing a buffer Solution: When splitting the window and editing a new buffer, check whether the newly to be edited buffer has been marked for deletion and abort in this case Github Advisory: https://github.com/vim/vim/security/advisories/GHSA-rj48-v4mq-j4vg https://github.com/vim/vim/commit/51b62387be93c65fa56bbabe1c3c1ea5df187641 Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:9.1.0762: 'cedit', 'termwinkey' and 'wildchar' may not be parsed ↵zeertzjq2024-10-07
| | | | | | | | | | | | | | | | | | | | | correctly (#30704) Problem: 'cedit', 'termwinkey' and 'wildchar' may not be parsed correctly Solution: improve string_to_key() function in option.c (Milly) - Problem: `^@` raises an error. Solution: Store as `<Nul>`. - Problem: `<t_xx` does not raise an error. Solution: Raise an error if closing `>` is missing. - Problem: Single `<` or `^` raises an error. It is inconvenient for users. Solution: They are stored as a single character. closes: vim/vim#15811 https://github.com/vim/vim/commit/a9c6f90918d0012d1b8c8c5c1dccb77407f553fb Co-authored-by: Milly <milly.ca@gmail.com>
* vim-patch:9.1.0761: :cd completion fails on Windows with backslash in path ↵zeertzjq2024-10-07
| | | | | | | | | | | | | | | | | (#30703) Problem: :cd completion fails on Windows with backslash in path Solution: switch no_bslash argument to FALSE in file_pat_to_reg_pat() Note: only fixes the problem on Windows. For Unix, we still need to escape backslashes since those are taken as regex atoms (and could be invalid regex atoms). fixes: vim/vim#15643 closes: vim/vim#15808 https://github.com/vim/vim/commit/1a31c430bb175144d097ca607dbe10d7960f372a Co-authored-by: Christian Brabandt <cb@256bit.org>
* vim-patch:fd4e47e: runtime(doc): clarify the effect of 'startofline' option ↵zeertzjq2024-10-07
| | | | | | | | | (#30701) fixes: vim/vim#15794 https://github.com/vim/vim/commit/fd4e47e06b77fa26cb38f057aba950449e1f47f6 Co-authored-by: Christian Brabandt <cb@256bit.org>
* feat(lsp): improve LSP doc hover rendering #30695Justin M. Keyes2024-10-06
| | | | | | | | | | | | Problem: - Some servers like LuaLS add unwanted blank lines after multiline `@param` description. - List items do not wrap nicely. Solution: - When rendering the LSP doc hover, remove blank lines in each `@param` or `@return`. - But ensure exactly one empty line before each. - Set 'breakindent'.
* docs: LspAttach, LspDetach examples #30661Gregory Anders2024-10-06
| | | | | | The current LspAttach example shows setting options which are already set by default. We should expect that users are going to copy-paste these examples, so we shouldn't use examples that are superfluous and unnecessary.
* feat(docs): improve `@see` meta docstrings #30693Justin M. Keyes2024-10-06
|
* ci: bump macos runner version to macos-15dundargoc2024-10-06
|
* fix(runtime): fully port emoji_list to LuaChristian Clason2024-10-06
| | | | | | | Problem: `runtime/tools/emoji_list.vim` is a Lua script masquerading as Vimscript, which is unnecessary now that `:source` works for Lua files. Solution: Remove Vimscript wrapper.
* fix(docs): markdown instead of vimdoc in meta docstrings #30680Justin M. Keyes2024-10-06
| | | | | LuaLS/meta docstrings expect markdown, not vimdoc. This matters for lists, codeblocks, etc. Also, line length doesn't matter for docstrings.
* fix(coverity/510436): shada_read_when_writing index out of bounds (#30686)Devon Gardner2024-10-06
| | | | | | | | Problem: Index for global and numbered marks out of bounds when indexing into numbered marks array (contains 10 elements but indexed by values 26 through 35. Solution: Offset index by number of global marks to correctly index numbered marks array.
* Merge pull request #30684 from zeertzjq/vim-738ebfezeertzjq2024-10-06
|\ | | | | vim-patch: doc updates
| * vim-patch:partial:89872f5: runtime(doc): update formatting and syntaxzeertzjq2024-10-06
| | | | | | | | | | | | | | | | closes: vim/vim#15800 https://github.com/vim/vim/commit/89872f58a9938142417906fc3243257c67c0af9c Co-authored-by: Milly <milly.ca@gmail.com>
| * vim-patch:partial:738ebfe: runtime(doc): Fix style in documentszeertzjq2024-10-06
|/ | | | | | | | closes: vim/vim#15801 https://github.com/vim/vim/commit/738ebfea4144dde3d6f25431631d7b821ca22d4d Co-authored-by: h-east <h.east.727@gmail.com>
* vim-patch:9.1.0003: Cannot build against Ruby 33 dynamically (#30683)zeertzjq2024-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Cannot build against Ruby 33 dynamically Solution: Ruby 33 removed transient heap, so do not use rb_ary_transient anymore, NoMethodError format changed, so update test for expected error message (Isao Sato) - ruby-3.3 removed transient heap for ruby/dyn when +ruby/dyn with ruby-3.3 do command :ruby, E448 occur. ruby-3.3 has no transient heap anymore, so disable rb_ary_transient etc. $ LC_ALL=C VIMRUNTIME=runtime ./src/vim -u NONE -c 'ruby puts RUBY_VERSION' "=> Error detected while processing command line: "=> E448: Could not load library function rb_ary_detransient "=> E266: Sorry, this command is disabled, the Ruby library could not be loaded. - ruby-3.3 changed NoMethodError format: $ rvm 3.2.2, 3.3.0-rc1 do ruby -e 'begin; nil.name; rescue => e; puts "%s : %s"%[RUBY_VERSION, e.message]; end ' => 3.2.2 : undefined method `name' for nil:NilClass => 3.3.0 : undefined method `name' for nil so loose pattern in Test_ruby_Vim_buffer_get() closes: vim/vim#13741 https://github.com/vim/vim/commit/443657b32becb2318ae40e30a849bbe5cc1a153c Co-authored-by: Isao Sato <svardew@gmail.com>
* vim-patch:9.1.0759: screenpos() may return invalid position (#30681)zeertzjq2024-10-06
| | | | | | | | | | | | | Problem: screenpos() may return invalid position after switching buffers (Greg Hurrell) Solution: reset w_leftcol if wrapping has been set after copying wrap option fixes: vim/vim#15792 closes: vim/vim#15803 https://github.com/vim/vim/commit/b065a10e245d020c11b521a2a5062300ca9891fc Co-authored-by: Christian Brabandt <cb@256bit.org>
* fix(docs): missing `@returns` desc in _meta/api.lua #30673Justin M. Keyes2024-10-05
|
* ci: bump ubuntu runner version to ubuntu-24.04dundargoc2024-10-05
| | | | Also bump clang to version 20.
* fix(coverity/497355): shada_read_when_writing out of bounds read #30665Devon Gardner2024-10-05
| | | | | | | | | | Problem: There appears to be an intentional array out of bounds read when indexing global and numbered marks since they are adjacent in the struct that holds them. Solution: Explicitly index numeric marks array to avoid reading out of bounds from global marks array.
* vim-patch:60310a4: runtime(java): Manage circularity for every :syn-included ↵Christian Clason2024-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | syntax file With "g:markdown_fenced_languages" defined and "java" added to its list, a circular dependency between the Markdown and Java syntax files will be made. To break it, no Markdown documentation comments will be recognised in fenced blocks in Markdown files; in order to view Java source files, "java" must be removed from "g:markdown_fenced_languages", and this task can be automated as follows. 1) Add to "~/.after/ftplugin/java.vim": ------------------------------------------------------------ if exists("g:markdown_fenced_languages") && \ !(exists("g:java_ignore_javadoc") || \ exists("g:java_ignore_markdown")) let s:idx = index(g:markdown_fenced_languages, 'java') if s:idx > -1 call remove(g:markdown_fenced_languages, s:idx) endif unlet s:idx endif ------------------------------------------------------------ 2) Optionally add to "~/.after/ftplugin/markdown.vim": ------------------------------------------------------------ if exists("g:markdown_fenced_languages") && \ index(g:markdown_fenced_languages, 'java') < 0 call add(g:markdown_fenced_languages, 'java') endif ------------------------------------------------------------ (Make sure that the above snippets appear in the files under the "ftplugin" NOT "syntax" directory.) Finally, unless the new version of the syntax file is made available from "$VIMRUNTIME" (and from "~/.vim/syntax" if necessary), OTHER discoverable file versions will be used whose behaviour may interfere with this fix. related: vim/vim#15740 closes: vim/vim#15796 https://github.com/vim/vim/commit/60310a4b2630a4d3bb0b6da9bc03061ecfbac9ee Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
* vim-patch:9.1.0758: it's possible to set an invalid key to 'wildcharm' (#30662)zeertzjq2024-10-05
| | | | | | | | | | | Problem: it's possible to set an invalid key to 'wildcharm' Solution: error out, if the 'wildcharm' value is an invalid key (Milly) closes: vim/vim#15787 https://github.com/vim/vim/commit/40c6babc1789aceb241b23bab76eea16da37e33d Co-authored-by: Milly <milly.ca@gmail.com>
* fix(defaults): use "range" instead of "count" for some mappings (#30642)Gregory Anders2024-10-04
| | | | | | | Some commands don't accept "count" and only work with "range". It's not clear why. The issue is tracked at [1], but this is a workaround for now. [1]: https://github.com/neovim/neovim/issues/30641
* docs: more `@since` annotations #30660Justin M. Keyes2024-10-04
|
* build(deps): bump tree-sitter to v0.24.1Christian Clason2024-10-04
|
* feat(lua): completion for vim.fn, vim.v, vim.o #30472Jongwook Choi2024-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Lua accessors for - global, local, and special variables (`vim.{g,t,w,b,v}.*`), and - options (`vim.{o,bo,wo,opt,opt_local,opt_global}.*`), do not have command-line completion, unlike their vimscript counterparts (e.g., `g:`, `b:`, `:set`, `:setlocal`, `:call <fn>`, etc.). Completion for vimscript functions (`vim.fn.*`) is incomplete and does not list all the available functions. Solution: Implement completion for vimscript function, variable and option accessors in `vim._expand_pat` through: - `getcompletion()` for variable and vimscript function accessors, and - `nvim_get_all_options_info()` for option accessors. Note/Remark: - Short names for options are yet to be implemented. - Completions for accessors with handles (e.g. `vim.b[0]`, `vim.wo[0]`) are also yet to be implemented, and are left as future work, which involves some refactoring of options. - For performance reasons, we may want to introduce caching for completing options, but this is not considered at this time since the number of the available options is not very big (only ~350) and Lua completion for option accessors appears to be pretty fast. - Can we have a more "general" framework for customizing completions? In the future, we may want to improve the implementation by moving the core logic for generating completion candidates to each accessor (or its metatable) or through some central interface, rather than writing all the accessor-specific completion implementations in a single function: `vim._expand_pat`.
* fix(mouse): indicate X1 and X2 button clicks on statusline (#30655)zeertzjq2024-10-04
|
* fix(lsp): enable `additionalPropertiesSupport`Yi Ming2024-10-04
|
* docs: render `@since` versions, 0 means experimental #30649Justin M. Keyes2024-10-04
| | | | | | | | An implication of this current approach is that `NVIM_API_LEVEL` should be bumped when a new Lua function is added. TODO(future): add a lint check which requires `@since` on all new functions. ref #25416
* docs(treesitter): generate TSNode, TSTree docs #30643Riley Bruins2024-10-03
| | | | | | | | | | | | **Problem:** The documentation for `TSNode` and `TSTree` methods is incomplete from the LSP perspective. This is because they are written directly to the vimdoc, rather than in Lua and generated to vimdoc. **Solution:** Migrate the docs to Lua and generate them into the vimdoc. This requires breaking up the `treesitter/_meta.lua` file into a directory with a few different modules. This commit also makes the vimdoc generator slightly more robust with regard to sections that have multiple help tags (e.g. `*one* *two*`)
* docs: improve luacats support #30580James Trew2024-10-03
| | | | | | | Some composite/compound types even as basic as `(string|number)[]` are not currently supported by the luacats LPEG grammar used by gen_vimdoc. It would be parsed & rendered as just `string|number`. Changeset adds better support for these types.
* perf(treesitter): do not use tree cursors with a small lifetimeLewis Russell2024-10-03
| | | | | | | | | Problem: Tree cursors can only be efficient when they are re-used. Short-lived cursors are very slow. Solution: Reimplement functions that use short-lived cursors.
* vim-patch:9.1.0756: missing change from patch v9.1.0754 (#30636)glepnir2024-10-03
| | | | | | | | | Problem: missing change from patch v9.1.0754 Solution: use correct width for the actual item in pum_redraw() (glepnir) closes: vim/vim#15786 https://github.com/vim/vim/commit/a6d9e3c4e07f73f6523699961d8b7b54bdb80cf6
* vim-patch:9.1.0755: quickfix list does not handle hardlinks well (#30637)zeertzjq2024-10-03
| | | | | | | | | | | | | | | | | | | | | Problem: quickfix list does not handle hardlinks well Solution: store original file name with quickfix entry (Austin Chang) Quickfix list shows entries with duplicate name if the file is opened with the path of hard links. The major cause is that qflist assumed that the filename passed into `qf_add_entry` matches the filename opened with the buffer. This patch handles this case by introduce a `qf_fname` into `qfline_S` structure. It stores the filename from `qf_add_entry` for each quickfix line. closes: vim/vim#15687 https://github.com/vim/vim/commit/29822996996550f68a781e85753ebd4d177f22da Co-authored-by: Austin Chang <austin880625@gmail.com>
* fix(ui): ensure screen update before waiting for input #30576fredizzimo2024-10-03
| | | | | | | | | | | Ensure the screen is fully updated before blocking for input. This did not always happen before, for example when setting `cursorline scrolloff=9999`, which lead to jerky movement when using some GUI applications. Because of the duality of redraw_later, this can't be done in command-line or when waiting for "Press ENTER". In many of those cases the redraw is expected AFTER the key press, while normally it should update the screen immediately. So, those special cases are excluded.
* vim-patch:f416a22: runtime(systemd): small fixes to &keywordprg in ftpluginChristian Clason2024-10-03
| | | | | | | | closes: vim/vim#15784 https://github.com/vim/vim/commit/f416a2220fbd457c3d3389fb0be59bee534a7491 Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
* fix(defaults): properly pass count to quickfix commands (#30632)zeertzjq2024-10-03
|
* refactor: fix incorrect use of enum (#30631)zeertzjq2024-10-03
|
* vim-patch:ae62fe5: runtime(doc): 'filetype', 'syntax' and 'keymap' only ↵zeertzjq2024-10-03
| | | | | | | | | allow alphanumeric + some characters (#30630) closes: vim/vim#15783 https://github.com/vim/vim/commit/ae62fe5c289e148b92b1d0bb912dcce7ebe14602 Co-authored-by: Milly <milly.ca@gmail.com>