aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * | | | | | docs: move minimum reproduction template from wiki to repodundargoc2023-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of a markdown file, just use a lua file instead that users can use directly.
| * | | | | | docs: inline wiki page Deps.md into MAINTAIN.mddundargoc2023-12-12
| | | | | | |
| * | | | | | docs: inline wiki page Refactoring.md into MAINTAIN.mddundargoc2023-12-12
| | | | | | |
| * | | | | | fix(lua): memory leak when using invalid syntax with exists() (#26530)zeertzjq2023-12-12
| | | | | | |
| * | | | | | feat(eval): exists() function supports checking v:lua functions (#26485)Raphael2023-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Vimscript function exists() can't check v:lua functions. Solution: Add support for v:lua functions to exists().
| * | | | | | Merge pull request #26486 from glepnir/fix_linebytebfredl2023-12-12
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | fix(eval): use no_ff instead of ffdos as condition
| | * | | | | | fix: use no_ff instead of ffdos as conditionglepnir2023-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: line2byte behavior is changed after commit b051b13. It no longer return `-1` on empty buffer. Solution: use `nof_ff` instead of `!ff_dos` as condition. Then compatible behavior of line2byte() is restored.
| * | | | | | | fix(extmarks): `U` changed_bytes after extmark_splice (#26501)Jaehwang Jung2023-12-12
| | | | | | | | | | | | | | | | | | | | | | | | See also: https://github.com/neovim/neovim/pull/26364
| * | | | | | | test(treesitter/fold_spec): fix flakiness (#26524)zeertzjq2023-12-12
| | | | | | | |
| * | | | | | | fix(tui): don't forget to update cursor visibility (#26523)zeertzjq2023-12-12
| | | | | | | |
| * | | | | | | Merge pull request #26506 from tomtomjhj/tsfoldLewis Russell2023-12-11
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | fix(treesitter): improve vim.treesitter.foldexpr
| | * | | | | | | fix(treesitter): improve vim.treesitter.foldexprJaehwang Jung2023-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Collect on_bytes and flush at the invocation of the scheduled callback to take account of commands that triggers multiple on_bytes. * More accurately track movement of folds so that foldexpr returns reasonable values even when the scheduled computation is not run yet. * Start computing folds from the line above (+ foldminlines) the changed lines to handle the folds that are removed due to the size limit. * Shrink folds that end at the line at which another fold starts to assign proper level to that line. * Use level '=' for lines that are not computed yet.
| | * | | | | | | fix(treesitter): fix indexing in foldexprJaehwang Jung2023-12-12
| | | | | | | | |
| | * | | | | | | test(treesitter): more foldexpr testsJaehwang Jung2023-12-12
| | | | | | | | |
| * | | | | | | | fix(coverity): unhandled retval for marktree_itr_get_overlap() #26518luukvbaal2023-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | buf_signcols_validate_range() is only called in a buffer with signs, in which the marktree is thus non-empty. Also remove a redundant comment, condition and variable. *** CID 470331: Error handling issues (CHECKED_RETURN) /src/nvim/decoration.c: 824 in buf_signcols_validate_range() 818 819 // Allocate an array of integers holding the overlapping signs in the range. 820 assert(row2 >= row1); 821 int *overlap = xcalloc(sizeof(int), (size_t)(row2 + 1 - row1)); 822 823 // First find the number of overlapping signs at "row1". >>> CID 470331: Error handling issues (CHECKED_RETURN) >>> Calling "marktree_itr_get_overlap" without checking return value (as is done elsewhere 4 out of 5 times). 824 marktree_itr_get_overlap(buf->b_marktree, currow, 0, itr); 825 while (marktree_itr_step_overlap(buf->b_marktree, itr, &pair)) { 826 if (!mt_invalid(pair.start) && pair.start.flags & MT_FLAG_DECOR_SIGNTEXT) { 827 overlap[0]++; 828 } 829 }
| * | | | | | | | build(deps): bump luajit to HEAD - ff204d035Christian Clason2023-12-11
| | | | | | | | |
| * | | | | | | | feat(gen_lsp.lua): validate CLI args #26514Jongwook Choi2023-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Improve CLI argument parsing, rejects invalid argument and commands as early as possible. Also prints USAGE in the command line. - No longer allows `--<outfile>`, use `--out <outfile>` instead. - Print a little bit of verbose messages to better know what's going on rather than remaining silent at all times. - Add type annotation `gen_lsp._opt` to avoid type warnings.
| * | | | | | | | Merge pull request #26458 from famiu/refactor/options/optionindexdundargoc2023-12-10
| |\ \ \ \ \ \ \ \
| | * | | | | | | | refactor(options): define `kOptIndexCount`Famiu Haque2023-12-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a macro to indicate the option count so that we can iterate through the options[] table more clearly. This also removes the need for having an option with NULL fullname at the end of `options[]`.
| | * | | | | | | | refactor(options): convert `opt_idx` variables to `OptIndex`Famiu Haque2023-12-09
| | | | | | | | | |
| | * | | | | | | | refactor(options): reduce `findoption()` usageFamiu Haque2023-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Many places in the code use `findoption()` to access an option using its name, even if the option index is available. This is very slow because it requires looping through the options array over and over. Solution: Use option index instead of name wherever possible. Also introduce an `OptIndex` enum which contains the index for every option as enum constants, this eliminates the need to pass static option names as strings.
| * | | | | | | | | docs(news): very, very minorlyChristian Clason2023-12-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix garbled item for new treesitter injection format * add missing item for new `vim.lpeg` and `vim.re` * use taglinks where possible * remove redundant "Added" and "Removed" from items
| * | | | | | | | | test: make text-only snapshots work (#26494)zeertzjq2023-12-10
| | | | | | | | | |
| * | | | | | | | | ci: fix PR labelerzeertzjq2023-12-10
| | | | | | | | | |
| * | | | | | | | | Merge pull request #26490 from zeertzjq/screen-repeatzeertzjq2023-12-09
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | test: avoid repeated screen lines in expected states
| | * | | | | | | | | test: avoid repeated screen lines in expected stateszeertzjq2023-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the command invoked repeatedly to make the changes: :%s/^\(.*\)|\%(\*\(\d\+\)\)\?$\n\1|\%(\*\(\d\+\)\)\?$/\=submatch(1)..'|*'..(max([str2nr(submatch(2)),1])+max([str2nr(submatch(3)),1]))/g
| | * | | | | | | | | test: allow avoiding repeated screen lines in expected stateszeertzjq2023-12-09
| |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow a "*count" suffix in a screen line to repeat the screen line for "count" times. The change is made to Screen:expect() and Screen:get_snapshot() instead of Screen:render() so that screen expectations generated using code can still work and test failures can still be readable. A snapshot is now also printed on failure so that there is no need to run the test again with Screen:snapshot_util().
| * | | | | | | | | build: remove config-specific find_package search for libuvdundargoc2023-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having two separate find_package calls makes it harder to maintain.
| * | | | | | | | | ci: refactor CI filesdundargoc2023-12-09
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mostly rename file and variable names to be more consistent. This makes it easier to locate them in the "Actions" tab on github.
| * / / / / / / / vim-patch:61e984e212ed (#26484)zeertzjq2023-12-09
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(doc): link cmdline completion to to |wildcards| and fix typos (vim/vim#13636) The docs for cmdline completion doesn't mention that [abc] is considered a wildcard, and |wildcards| contains more detailed information, so just link to it. Also fix some typos in other help files. https://github.com/vim/vim/commit/61e984e212ed19774e088868c30c2d03c4e5a0cf
| * | | | | | | refactor: format casting of negative number better (#26482)zeertzjq2023-12-09
| | | | | | | |
| * | | | | | | refactor(tui): use synchronized updates around actual buf flush (#26478)Gregory Anders2023-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than writing the synchronized update begin and end sequences into the TUI's internal buffer (where it is later flushed to the TTY), write these sequences directly to the TTY before and after the TUI's internal buffer is itself flushed to the TTY. This guarantees that a synchronized update is always used when we are actually sending data to the TTY. This means we do not need to keep track of the TUI's "dirty" state (any sequences which affect the TUI state will be written in the TUI's internal buffer, which is now guaranteed to only ever be written when a synchronized update is active).
| * | | | | | | vim-patch:ff0baca86523 (#26476)zeertzjq2023-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | runtime(syntax): unlet b:filetype_in_cpp_family for cpp & squirrel Update runtime/syntax/cpp.vim and runtime/syntax/squirrel.vim to unlet b:filetype_in_cpp_family as it remains set even after updating the ft of a file manually or through a modeline, not allowing c specific keywords to be highlighted. Since the variable b:filetype_in_cpp_family is only used by the c.vim syntax script, unlet it directly after sourcing the c.vim runtime file instead of at the end of the script. Also update the last Change Header for both files. closes: vim/vim#13650 https://github.com/vim/vim/commit/ff0baca86523f1e8c6ea593ec0ef2f9860f001d0 Co-authored-by: laburnumT <laburnumtec@gmail.com>
| * | | | | | | vim-patch:9.0.2154: The option[] array is not sorted (#26475)zeertzjq2023-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The options[] array is not sorted alphabetically. Solution: Sort it alphabetically. Add a test. Avoid unnecessary loop iterations in findoption(). closes: vim/vim#13648 Cherry-pick Test_set_one_column() change from patch 8.2.0432. https://github.com/vim/vim/commit/f48558e10a08a1a483e25ef847bbceeac6b44561
| * | | | | | | ci: bump actions/labeler from 4 to 5dundargoc2023-12-08
| | | | | | | |
| * | | | | | | ci: remove python workarounddundargoc2023-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The provider tests seems to work now without this workaround.
| * | | | | | | fix(snippet): remove misleading comment about TM_FILENAME_BASE (#26465)Maria José Solano2023-12-08
| | | | | | | |
| * | | | | | | perf(column): avoid counting when max signs are removed from a rangeLuuk van Baal2023-12-08
| | | | | | | |
| * | | | | | | test(tui_spec): update cursor_address test for flush start (#26464)zeertzjq2023-12-08
| | | | | | | |
| * | | | | | | fix(tui): start flush earlier (#26463)zeertzjq2023-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: TUI flush (start sync or hide cursor) only starts on a "flush" event, which is too late. Solution: Start the next flush when anything will be drawn.
| * | | | | | | test: use termopen() instead of :terminal more (#26462)zeertzjq2023-12-08
| | | | | | | |
| * | | | | | | test: fix Windows tests failures (#26461)Gregory Anders2023-12-08
| | | | | | | |
| * | | | | | | Merge pull request #26456 from gpanders/ignore-vim-runtimeGregory Anders2023-12-07
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | fix(terminal): ignore $VIM and $VIMRUNTIME in pty jobs
| | * | | | | | | test: forward $VIMRUNTIME in child nvim instancesGregory Anders2023-12-07
| | | | | | | | |
| | * | | | | | | fix(terminal): ignore $VIM and $VIMRUNTIME in pty jobsGregory Anders2023-12-07
| | | | | | | | |
| * | | | | | | | refactor(options): split `get_option_value()` into smaller functionsFamiu Haque2023-12-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Currently, `get_option_value()` returns 3 separate things: The actual value of the option, whether the option is hidden, and the option flags. This makes the function difficult to refactor, modify or otherwise reason about. Solution: Split `get_option_value()` into 3 functions, each with a single purpose. This also affects `get_option_value_for()`.
| * | | | | | | | fix(lua): allow nil values in serialized Lua arrays (#26329)Gregory Anders2023-12-07
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we convert a Lua table to an Object, we consider the table a "dictionary" if it contains only string keys, and an array if it contains all numeric indices with no gaps. While rare, Lua tables can have both strictly numeric indices and gaps (e.g. { [2] = 2 }). These currently cannot be serialized because it is not considered an array. However, we know the maximum index of the table and as long as all of the keys in the table are numeric, it is still possible to serialize this table as an array. The missing indices will have nil values.
| * | | | | | | perf(column): keep track of number of lines that hold up the 'signcolumn'Luuk van Baal2023-12-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The entire marktree needs to be traversed each time a sign is removed from the sentinel line. Solution: Remove sentinel line and instead keep track of the number of lines that hold up the 'signcolumn' in "max_count". Adjust this number for added/removed signs, and set it to 0 when the maximum number of signs on a line changes. Only when "max_count" is decremented to 0 due to sign removal do we need to check the entire buffer. Also replace "invalid_top" and "invalid_bot" with a map of invalid ranges, further reducing the number of lines to be checked. Also improve tree traversal when counting the number of signs. Instead of looping over the to be checked range and counting the overlap for each row, keep track of the overlap in an array and add this to the count.
| * | | | | | | Merge #26426 allow empty string key in msgpack => Vim conversionJustin M. Keyes2023-12-07
| |\ \ \ \ \ \ \
| | * | | | | | | refactor: object_to_vim() cannot failJustin M. Keyes2023-12-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the parent commit, object_to_vim() can't fail, so callers don't need to check its result.