aboutsummaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAge
...
* | fix(mappings): fix mapset() not replacing map with backslash (#26719)zeertzjq2023-12-23
|/
* fix(decor): allow adding providers during redrawLewis Russell2023-12-22
| | | | Fixes: #26652
* fix(lsp): filetype matching to documentSelector in dynamic capabilities (#25425)Michal Liszcz2023-12-22
| | | | | | | Use the get_language_id client option to resolve the filetype when matching the document selector in a dynamic capability. Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
* Merge pull request #26528 from bfredl/nodrawstatebfredl2023-12-22
|\ | | | | refactor(drawline): remove LineDrawState and wlv->saved_n_extra
| * refactor(drawline): remove LineDrawState and wlv->saved_n_extrabfredl2023-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do not need an enum to keep track of what place in win_line() we currently are at. We already have a variable which keeps track where in the code we currently are (and thus what part of the line we are currently rendering), it is called the _program counter_. When we need non-linear or self-referential control-flow anyway for a laugh, we have a mechanism for that, it is called _function calls_. Do not "save" and "restore" the wlv->n_extra state every time the columns are to be drawn. This sort of thing needs to go away. Instead of setting the n_extra variables and then going to the outer while loop, the text in the columns can be rendered by just simply putting the text into the cells of the screen line, right away. Even in nvim this can be tricky sometimes, luckily we can use function calls to abstract this logic, which means that this handy data structure called the _call stack_ is handling saving away state temporarily, and restoring it back when we need it again. Lastly, but not least, as we now have direct control how signs are rendered, these can be stored as schar_T[2] and be directly put on screen as such.
* | refactor(lsp): move glob parsing to util (#26519)Steven Arcangeli2023-12-22
| | | | | | | | | | | | | | | | refactor(lsp): move glob parsing to vim.glob Moving the logic for using vim.lpeg to create a match pattern from a glob into `vim.glob`. There are several places in the LSP spec that use globs, and it's very useful to have glob matching as a generally-available utility.
* | fix(column): avoid exceeding configured 'signcolumn' widthLuuk van Baal2023-12-21
|/
* refactor(runtime): rewrite 'vim' color scheme in LuaEvgeni Chasnovski2023-12-21
| | | | | | | | | | Problem: Bundled 'vim' color scheme is written in Vimscript which implicitly assumes that the file is ported from Vim. This is not the case, at it is currently the Neovim's way of providing backward compatibility for color schemes. Solution: Rewrite it in Lua to indicate that this runtime file comes from Neovim.
* vim-patch:9.0.2179: no filetype detection for execline scriptsChristian Clason2023-12-19
| | | | | | | | | | | | | | | | | Problem: no filetype detection for execline scripts Solution: Add filetype detection for execline as a prior to adding syntax support for execline (see https://github.com/djpohly/vim-execline/issues/2), i went ahead and made the filetype detection for execline scripts. closes: vim/vim#13689 Signed-Off-By: Mazunki Hoksaas <rolferen@gmail.com> https://github.com/vim/vim/commit/63210c214afa6589b6132bd060908a8711f4567f Co-authored-by: Mazunki Hoksaas <rolferen@gmail.com>
* vim-patch:9.0.2177: Wrong cursor position when dragging out of window (#26661)zeertzjq2023-12-20
| | | | | | | | Problem: Wrong cursor position when dragging out of window. Solution: Don't use ScreenCols[] when mouse is not in current window. closes: vim/vim#13717 https://github.com/vim/vim/commit/ec14924368e23f2430815c009bd554f88de9c57f
* vim-patch:9.0.2178: reg_executing() wrong for :normal with range (#26660)zeertzjq2023-12-20
| | | | | | | | | Problem: reg_executing() returns wrong result in :normal with range when 'showcmd' is set (after 8.2.4705). Solution: Reset "pending_end_reg_executing" when executing a register. closes: vim/vim#13707 https://github.com/vim/vim/commit/615202bd0ebc1d8e3532f24b9b7232c2fd86b181
* test: "diff" flag of 'fillchars' (#26657)zeertzjq2023-12-19
|
* test: sign on wrapped line with signcolumn=number (#26654)zeertzjq2023-12-19
|
* refactor: use `bool` to represent boolean valuesdundargoc2023-12-19
|
* docs: small fixes (#26448)dundargoc2023-12-19
| | | | Co-authored-by: Gregory Anders <8965202+gpanders@users.noreply.github.com> Co-authored-by: Jordan Mandel <jordan.mandel@live.com>
* fix(api): don't set coladd of mark (#26648)zeertzjq2023-12-19
|
* feat(api): add forward and back mouse buttonsAmanda Graven2023-12-18
|
* refactor: soft-deprecate diagnostic signs configured with :sign-define (#26618)Gregory Anders2023-12-18
| | | | | Diagnostic signs should now be configured with vim.diagnostic.config(), but "legacy" sign definitions should go through the standard deprecation process to minimize the impact from breaking changes.
* fix(lua): handle array with holes in luaeval() (#26630)zeertzjq2023-12-18
|
* fix(options): setting 'scroll' with resized grid (#26628)zeertzjq2023-12-18
|
* test(core/job_spec): fix flakiness (#26623)zeertzjq2023-12-18
|
* build: cmake fixesdundargoc2023-12-16
| | | | | | | | | | | | | | - add EXTERNALPROJECT_OPTIONS variable to main build - use `REQUIRED` keyword for IWYU. - remove check_c_compiler_flag checks when `ENABLE_COMPILER_SUGGESTIONS` is `ON`. If we explicitly enable it then we probably want it to give an error if it doesn't exist, rather than silently skip it. - Move dependency interface libraries to their find module and use them as a pseudo-imported target. - Remove BUSTED_OUTPUT_TYPE. It's not used and we can reintroduce it again if something similar is needed. - Use LINK_OPTIONS intead of LINK_FLAGS when generating the `--version` output.
* fix(api): crash after nvim_win_set_config title/footer validation error (#26606)notomo2023-12-16
|
* feat(highlight): tweak default color schemeEvgeni Chasnovski2023-12-16
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Updating default color scheme produced some feedback. Solution: Address the feedback. Outline of the changes: - Colors `Grey1` and `Grey2` are made a little bit more extreme (dark - darker, light - lighter) to increase overall contrast. - `gui` colors are treated as base with `cterm` colors falling back to using 0-15 colors which come from terminal emulator. - Update highlight group definition to not include attribute definition if it is intended to staty uncolored. - Tweak some specific highlight groups. - Add a list of Neovim specific highlight groups which are now defined differently in a breaking way. - Minor tweaks in several other places related to default color scheme.
* vim-patch:9.0.2168: Moving tabpages on :drop may cause an endless loop (#26605)zeertzjq2023-12-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Moving tabpages on :drop may cause an endless loop Solution: Disallow moving tabpages on :drop when cleaning up the arglist first Moving tabpages during drop command may cause an endless loop When executing a :tab drop command, Vim will close all windows not in the argument list. This triggers various autocommands. If a user has created an 'au Tabenter * :tabmove -' autocommand, this can cause Vim to end up in an endless loop, when trying to iterate over all tabs (which would trigger the tabmove autocommand, which will change the tpnext pointer, etc). So instead of blocking all autocommands before we actually try to edit the given file, lets simply disallow to move tabpages around. Otherwise, we may change the expected number of events triggered during a :drop command, which users may rely on (there is actually a test, that expects various TabLeave/TabEnter autocommands) and would therefore be a backwards incompatible change. Don't make this an error, as this could trigger several times during the drop command, but silently ignore the :tabmove command in this case (and it should in fact finally trigger successfully when loading the given file in a new tab). So let's just be quiet here instead. fixes: vim/vim#13676 closes: vim/vim#13686 https://github.com/vim/vim/commit/df12e39b8b9dd39056e22b452276622cb7b617fd Co-authored-by: Christian Brabandt <cb@256bit.org>
* feat(ui): completeopt support popup like vimmathew2023-12-16
|
* Merge pull request #26512 from famiu/refactor/options/type_flagsbfredl2023-12-16
|\ | | | | refactor(options): remove option type macros
| * refactor(options): remove option type macrosFamiu Haque2023-12-14
| | | | | | | | | | | | | | | | Problem: We have `P_(BOOL|NUM|STRING)` macros to represent an option's type, which is redundant because `OptValType` can already do that. The current implementation of option type flags is also too limited to allow adding multitype options in the future. Solution: Remove `P_(BOOL|NUM|STRING)` and replace it with a new `type_flags` attribute in `vimoption_T`. Also do some groundwork for adding multitype options in the future. Side-effects: Attempting to set an invalid keycode option (e.g. `set t_foo=123`) no longer gives an error.
* | vim-patch:323dda1484d9 (#26583)zeertzjq2023-12-15
|/ | | | | | | | | runtime(termdebug): add Tbreak command closes: vim/vim#13656 https://github.com/vim/vim/commit/323dda1484d95ee5c8a1b2205f8c495446df75ee Co-authored-by: iam28th <artyom28th@gmail.com>
* fix(extmark): only invalidate unpaired marks on deleted rowsLuuk van Baal2023-12-14
| | | | | | Problem: Unpaired marks are invalidated if its column is deleted, which may just be a "placeholder" column, e.g. for signs. Solution: Only remove unpaired marks if its entire row is deleted.
* test(nvim_open_term): don't resize after creating terminal (#26570)zeertzjq2023-12-14
| | | This makes the screen states consistently have no EOB lines.
* feat(nvim_open_term): convert LF => CRLF (#26384)Raphael2023-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Unlike termopen(), nvim_open_term() PTYs do not carriage-return the cursor on newline ("\n") input. nvim --clean :let chan_id = nvim_open_term(1, {}) :call chansend(chan_id, ["here", "are", "some", "lines"]) Actual behavior: here are some lines Expected behaviour: here are some lines Solution: Add `force_crlf` option, and enable it by default.
* fix(diagnostic): check for sign namespace instead of sign groupGregory Anders2023-12-13
|
* refactor(diagnostic): set sign by using extmark (#26193)Raphael2023-12-13
| | | | after sign implementation refactor by using extmark, we can use `nvim_buf_set_extmark` to set diagnostic sign instead use `sign_define`
* vim-patch:9.0.2159: screenpos() may crash with neg. column (#26542)zeertzjq2023-12-13
| | | | | | | | Problem: screenpos() may crash with neg. column Solution: validate and correct column closes: vim/vim#13669 https://github.com/vim/vim/commit/ec54af4e26952d954a4cc009f62c80ea01445d30
* feat(iter): add `Iter.take` (#26525)Will Hopkins2023-12-12
|
* fix(stream): do not close handle if it is already closing (#26537)Gregory Anders2023-12-12
| | | | | uv_close asserts that a handle is not already closing. We can guard against this assertion failure by manually checking the handle's closing status ourselves.
* 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.
* | 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
| * | test(treesitter): more foldexpr testsJaehwang Jung2023-12-12
| | |
* | | Merge pull request #26458 from famiu/refactor/options/optionindexdundargoc2023-12-10
|\ \ \
| * | | 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.
* | | test: make text-only snapshots work (#26494)zeertzjq2023-12-10
| | |
* | | 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().