aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| * fix(tui): resume main thread if suspending isn't implemented (#20523)zeertzjq2022-10-08
| | | | | | Not doing anything is better than hanging.
| * fix(api): dynamically allocate line buffer for nvim_out_write (#20537)zeertzjq2022-10-08
| |
| * fix: find multibyte file name in line (#20519)zeertzjq2022-10-07
| | | | | | And remove unnecessary unsigned casts in fold marker comparison.
| * fix(ui): setting 'cmdheight' with global statusline (#20515)zeertzjq2022-10-07
| |
| * vim-patch:9.0.0678: using exclamation marks on :function (#20518)zeertzjq2022-10-07
| | | | | | | | | | | | | | Problem: Using exclamation marks on :function. Solution: Use :func and :endfunc as usual. https://github.com/vim/vim/commit/97f0eb169bf805c372b13c6bc9a03da2e75e3354 Add a missing change from patch 8.1.1875.
| * vim-patch:9.0.0666: spacing-combining characters handled as composing (#20501)zeertzjq2022-10-07
| | | | | | | | | | | | | | Problem: Spacing-combining characters handled as composing, causing text to take more space than expected. Solution: Handle characters marked with "Mc" not as composing. (closes vim/vim#11282 https://github.com/vim/vim/commit/7beaf6a720ddc7e2989c8831872bfb98ec78a65d
| * vim-patch:9.0.0670: no space for command line when there is a tabline (#20512)zeertzjq2022-10-06
| | | | | | | | | | | | Problem: No space for command line when there is a tabline. Solution: Correct computation of where the command line should be. (closes vim/vim#11295) https://github.com/vim/vim/commit/c9f5f73206272ccad0aa536854debc5f9781978a
| * vim-patch:9.0.0657: too many #ifdefs (#20506)zeertzjq2022-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Too many #ifdefs. Solution: Graduate the +cmdwin feature. Now the tiny and small builds are equal, drop the small build. (Martin Tournoij, closes vim/vim#11268) https://github.com/vim/vim/commit/7904fa420eb577274c4c3711295240100167d495 Accidentally forgot to mark as ported: vim-patch:9.0.0471: no test for what patch 9.0.0469 fixes Problem: No test for what patch 9.0.0469 fixes. Solution: Add a test. (closes vim/vim#11140) https://github.com/vim/vim/commit/12167d8b84c4a99751d9928f1a9a59c90b14931f
| * feat(window/ui): add splitkeep option (#19243)luukvbaal2022-10-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vim-patch:9.0.0445: when opening/closing window text moves up/down Problem: When opening/closing window text moves up/down. Solution: Add the 'splitscroll' option. When off text will keep its position as much as possible. https://github.com/vim/vim/commit/29ab524358ba429bcf6811710afc97a978641f0b vim-patch:9.0.0455: a few problems with 'splitscroll' Problem: A few problems with 'splitscroll'. Solution: Fix 'splitscroll' problems. (Luuk van Baal, closes vim/vim#11117) https://github.com/vim/vim/commit/5ed391708a62b4ebaa84dd23e32a416e5c3383d9 vim-patch:9.0.0461: 'scroll' is not always updated Problem: 'scroll' is not always updated. Solution: Call win_init_size() at the right place. https://github.com/vim/vim/commit/470a14140bc06f1653edf26ab0b3c9b801080353 vim-patch:9.0.0465: cursor moves when cmdwin is closed when 'splitscroll' is off Problem: Cursor moves when cmdwin is closed when 'splitscroll' is off. Solution: Temporarily set 'splitscroll' when jumping back to the original window. (closes vim/vim#11128) https://github.com/vim/vim/commit/e697d488901b6321ddaad68b553f0a434c97d849 vim-patch:9.0.0469: cursor moves if cmdwin is closed when 'splitscroll' is off Problem: Cursor moves if cmdwin is closed when 'splitscroll' is off. Solution: Skip win_fix_cursor if called when cmdwin is open or closing. (Luuk van Baal, closes vim/vim#11134) https://github.com/vim/vim/commit/3735f11050616652525bf80b4fbcb2b3bfeab113 vim-patch:9.0.0478: test for 'splitscroll' takes too much time Problem: Test for 'splitscroll' takes too much time. Solution: Only test some of the combinations. (Luuk van Baal, closes vim/vim#11139) https://github.com/vim/vim/commit/594f9e09cd68e6277b8aa08094405bc642c5792a vim-patch:9.0.0486: text scrolled with 'nosplitscroll', autocmd win and help Problem: Text scrolled with 'nosplitscroll', autocmd win opened and help window closed. Solution: Skip win_fix_scroll() in more situations. (Luuk van Baal, closes vim/vim#11150) https://github.com/vim/vim/commit/d5bc762dea1fd32fa04342f8149f95ccfc3b9709 vim-patch:9.0.0505: various problems with 'nosplitscroll' Problem: Various problems with 'nosplitscroll'. Solution: Fix 'nosplitscroll' problems. (Luuk van Baal, closes vim/vim#11166) https://github.com/vim/vim/commit/faf1d412f5e3665021500b528c0e7301eb02bf0b vim-patch:9.0.0555: scrolling with 'nosplitscroll' in callback changing curwin Problem: Scrolling with 'nosplitscroll' in callback changing curwin. Solution: Invalidate w_cline_row in the right place. (Luuk van Baal, closes vim/vim#11185) https://github.com/vim/vim/commit/20e58561abc4116f3bfbafaef242d886dd77b303 vim-patch:9.0.0603: with 'nosplitscroll' folds are not handled correctly Problem: With 'nosplitscroll' folds are not handled correctly. Solution: Take care of closed folds when moving the cursor. (Luuk van Baal, closes vim/vim#11234) https://github.com/vim/vim/commit/7c1cbb6cd437c6e0c3ccc05840cc931108b4a60a vim-patch:9.0.0605: dump file missing Problem: Dump file missing. Solution: Add the missing dump file. (issue vim/vim#11234) https://github.com/vim/vim/commit/439a2ba1749463718b6ce1e1375b68c7b7cff808 vim-patch:9.0.0647: the 'splitscroll' option is not a good name Problem: The 'splitscroll' option is not a good name. Solution: Rename 'splitscroll' to 'splitkeep' and make it a string option, also supporting "topline". (Luuk van Baal, closes vim/vim#11258) https://github.com/vim/vim/commit/13ece2ae1d09009d3fb8acf858c288e7848ecdac vim-patch:9.0.0667: ml_get error when 'splitkeep' is "screen" Problem: ml_get error when 'splitkeep' is "screen". (Marius Gedminas) Solution: Check the botline is not too large. (Luuk van Baal, closes vim/vim#11293, closes vim/vim#11292) https://github.com/vim/vim/commit/346823d3e5668b99d2c2fd920e7f215e21ad3ea7
| * vim-patch:9.0.0422: not enough testing of the :all command (#20503)zeertzjq2022-10-06
| | | | | | | | | | Problem: Not enough testing of the :all command. Solution: Add more testing. (Yegappan Lakshmanan, closes vim/vim#11091) https://github.com/vim/vim/commit/0dc2fd307ffc223cf010d1fdea6e3d5c4524d43c
| * vim-patch:9.0.0665: setting 'cmdheight' has no effect if last window was ↵zeertzjq2022-10-06
| | | | | | | | | | | | | | | | resized (#20500) Problem: Setting 'cmdheight' has no effect if last window was resized. Solution: Do apply 'cmdheight' when told to. Use the frame height instead of the cmdline_row. (closes vim/vim#11286) https://github.com/vim/vim/commit/0816f473ab2f6cf7d8311c0f97371cada7f20d18
| * Merge pull request #20374 from bfredl/notypebfredl2022-10-05
| |\ | | | | | | screen: refactor old curwin-heavy logic and graduate "msgsep" feature
| | * fix(options): no matter what is said, 'cmdheight' is tab-local (susy baka)bfredl2022-10-05
| | |
| | * feat(messages)!: graduate the 'msgsep' featurebfredl2022-10-05
| | | | | | | | | | | | | | | | | | | | | The old behaviour (e.g. via `set display-=msgsep`) will not be available. Assuming that messages always are being drawn on msg_grid (or not drawn at all, and forwarded to `ext_messages` enabled UI) will allows some simplifcations and enhancements moving forward.
| | * refactor(redraw): various simplificationsbfredl2022-10-05
| | |
| | * refactor(redraw): no type argument in update_screen()bfredl2022-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was used in the past with assumption that curwin/curbuf is "special" but this has not been true since basically forever at this point. Reduce NOT_VALID/CLEAR panic in options.lua . These should not be set if an effect of the option is causing something which by itself invokes redraw_later().
| * | vim-patch:9.0.0388: the do_arg_all() function is too longzeertzjq2022-10-05
| | | | | | | | | | | | | | | | | | | | | Problem: The do_arg_all() function is too long. Solution: Split the function in smaller parts. (Yegappan Lakshmanan, closes vim/vim#11062) https://github.com/vim/vim/commit/8894761daf68220504932c8b3e75f59138cdb617
| * | vim-patch:8.2.3886: can define autocmd for every event by using "au!"zeertzjq2022-10-05
| | | | | | | | | | | | | | | | | | Problem: Can define autocmd for every event by using "au!". Solution: Check if a command is present also for "au!". https://github.com/vim/vim/commit/b6db1467622be046dbf00b2213fd9f49f4f3cccb
| * | vim-patch:8.2.3885: arglist test failszeertzjq2022-10-05
| | | | | | | | | | | | | | | | | | Problem: Arglist test fails. Solution: Adjust for locking the arglist for ":all". https://github.com/vim/vim/commit/679140c56bbabf12a199d94f584b1b9dfc9809fd
| * | vim-patch:8.2.3884: crash when clearing the argument list while using itzeertzjq2022-10-05
| | | | | | | | | | | | | | | | | | Problem: Crash when clearing the argument list while using it. Solution: Lock the argument list for ":all". https://github.com/vim/vim/commit/6f98371532fcff911b462d51bc64f2ce8a6ae682
| * | vim-patch:8.2.2463: using :arglocal in an autocommand may use freed memoryzeertzjq2022-10-05
| | | | | | | | | | | | | | | | | | | | | Problem: Using :arglocal in an autocommand may use freed memory. (houyunsong) Solution: Check if the arglist is locked. https://github.com/vim/vim/commit/6bcb877ec19a647443195a54eeac60cb693fd827
| * | vim-patch:8.2.2421: double free when using autocommand with "argdel"zeertzjq2022-10-05
| | | | | | | | | | | | | | | | | | Problem: Double free when using autocommand with "argdel". (Houyunsong) Solution: Add the arglist_locked flag. https://github.com/vim/vim/commit/5ed58c7b700fcb9fd03c418300145b616f4bdcdd
| * | vim-patch:8.2.2413: crash when using :all while using a cmdline windowzeertzjq2022-10-05
| |/ | | | | | | | | | | | | | | Problem: Crash when using :all while using a cmdline window. (Zdenek Dohnal) Solution: Disallow :all from the cmdline window. https://github.com/vim/vim/commit/bb4b93ed85726c3921596ca267f531c8c94d819a Use test from lastest Vim instead.
| * vim-patch:9.0.0661: multi-byte "lastline" in 'fillchars' does not work properlyzeertzjq2022-10-05
| | | | | | | | | | | | | | Problem: Multi-byte "lastline" item in 'fillchars' does not work properly when the window is two columns wide. Solution: Compute the text length correctly. (closes vim/vim#11280) https://github.com/vim/vim/commit/18b3500b8c517e44c23197e558aa36aed1c6916c
| * vim-patch:9.0.0656: cannot specify another character to use instead of '@'zeertzjq2022-10-05
| | | | | | | | | | | | | | | | | | | | Problem: Cannot specify another character to use instead of '@' at the end of the window. Solution: Add "lastline" to 'fillchars'. (Martin Tournoij, closes vim/vim#11264, closes vim/vim#10963) https://github.com/vim/vim/commit/4ba5f1dab656103e8f4a4505452d1816b9e83c1e Use latest code in drawscreen.c instead.
| * fix(ui): msg_ext_set_kind for nvim_echo (#20476)Shougo2022-10-04
| |
| * vim-patch:8.2.2316: Vim9: cannot list a lambda functionzeertzjq2022-10-04
| | | | | | | | | | | | Problem: Vim9: cannot list a lambda function. Solution: Support the <lambda>9 notation, like :disassemble. (closes vim/vim#7634) https://github.com/vim/vim/commit/b657198cb30765468451d7f68fce49b5b4000c5d
| * Merge #20154 build: cmake cleanupJustin M. Keyes2022-10-02
| |\
| | * build: remove unnecessary translation-related codedundargoc2022-10-02
| | | | | | | | | | | | | | | The commands run in cmake script mode (-P) can simply be run in the main cmake run instead.
| * | feat(l10n): update Turkish translations (#20444)Emir SARI2022-10-02
| | |
| * | build: only generate compilation database for the nvim target (#20449)dundargoc2022-10-02
| |/ | | | | | | | | | | | | | | | | | | | | Some tools like clang-tidy get confused and repeat unnecessary work if there are multiple entries with the same name. This will only generate a compilation database for cmake version 3.20 and above. Generating a compilation database is only necessary for development, so we don't need to maintain compatibility with the minimum required version. Closes https://github.com/neovim/neovim/issues/10632
| * fix(folds): fix fold marker multibyte comparison (#20439)zeertzjq2022-10-02
| |
| * vim-patch:9.0.0622: matchaddpos() can get slow when adding many matcheszeertzjq2022-10-02
| | | | | | | | | | | | | | Problem: matchaddpos() can get slow when adding many matches. Solution: Update the next available match ID when manually picking an ID and remove check if the available ID can be used. (idea by Rick Howe) https://github.com/vim/vim/commit/9f573a8df02d9f699a43d2afbd1d2841d700b9ad
| * vim-patch:9.0.0620: matchaddpos() can only add up to 8 matcheszeertzjq2022-10-02
| | | | | | | | | | | | Problem: matchaddpos() can only add up to 8 matches. Solution: Allocate the array of positions. (closes vim/vim#11248) https://github.com/vim/vim/commit/50faf02f43d7f1a56ec2023028fca7c72dbce83e
| * Merge #19438 from 3N4N/fix/pwshJustin M. Keyes2022-10-01
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverts #16271 Fixs #15913 Problem: Since #16271, `make_filter_cmd` uses `Start-Process` cmdlet to execute the user provided shell command for `:%!`. `Start-Process` requires the command to be split into the shell command and its arguments. This was implemented in #19268 by parsing (splitting the user-provided command at the first space) which didn't handle cases such as -- - commands with escaped space in their filepath - quoted commands with space in their filepath Solution: Use piping. The total shell command formats (excluding noise of unimportant parameters): 1. Before #16271 ```powershell pwsh -C "(shell_cmd) < tmp.in | 2>&1 Out-File -Encoding UTF8 <tmp.out>" # not how powershell commands work ``` 2. Since #16271 ```powershell pwsh -C "Start-Process shell_cmd -RedirectStandardInput <tmp.in> -RedirectStandardOutput <tmp.out>" # doesn't handle executable path with space in it # doesn't write error to <tmp.out> ``` 3. This PR ```powershell pwsh -C "& { Get-Content <tmp.in> | & 'path\with space\to\shell_cmd.exe' arg1 arg2 } 2>&1 | Out-File -Encoding UTF8 <tmp.out>" # also works with forward slash in the filepath # also works with double quotes around shell command ``` After this PR, the user can use the following formats: :%!c:\Program` Files\Git\usr\bin\sort.exe :%!'c:\Program Files\Git\usr\bin\sort.exe' :%!"c:\Program Files\Git\usr\bin\sort.exe" :%!"c:\Program` Files\Git\usr\bin\sort.exe" They can even chain different commands: :%!"c:\Program` Files\Git\usr\bin\sort.exe" | sort.exe -r But if they want to call a stringed executable path, they have to provide the Invoke-Command operator (&). In fact, the first stringed executable path also needs this & operator, but this PR adds that behind the scene. :%!"c:\Program` Files\Git\usr\bin\sort.exe" | sort.exe -r | & 'c:\Program Files\Git\usr\bin\sort.exe' ## What this PR solves - Having to parse the user-provided bang ex-command (for splitting into shell cmd and its args). - Removes a lot of human-unreadable `#ifdef` blocks. - Accepting escaped spaces in executable path. - Accepting quoted string of executable path. - Redirects error and exception to tmp.out (exception for when `wrong_cmd.exe not found`) ## What this PR doesn't solve - Handling wrongly escaped path to executable, which the user may pass because of cmdline tab-completion. #18592 ## Edge cases - (Not handled) If the user themself provides the `&` sign (means `call this.exe` in powershell) - (Not handled) Use `-Encoding utf8` parameter for `Get-Content`? - (Handled) Doesn't write to tmp.out if shell command is not found. - fix: use anonymous function (`{wrong_cmd.exe}`). ## Changes other than `make_filter_cmd()` function - Encoding for piping to external executables. See BOM-less UTF8: https://github.com/PowerShell/PowerShell/issues/4681
| | * fix: :! pwsh redirection for `command not found`Enan Ajmain2022-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: If the shell command passed to the filtered bang command isn't found, the error isn't redirected to the temp.out file when shell is set to powershell. Solution: Use anonymous function with Invoke-Command operator (&).
| | * fix: make_filter_cmd for :! powershellEnan Ajmain2022-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: `Start-Process` requires the command to be split into the shell command and its arguments. Previously it was done by parsing, which didn't handle cases such as - commands with escaped space in their filepath - quoted commands with space in their filepath Solution: Use - `pwsh -Command` instead of `Start-Process` - `Get-Content` instead of `-RedirectStandardInput` - `Out-File` instead of `-RedirectStandardOutput`
| * | vim-patch:8.2.2542: highlight of char beyond line end is not correct (#20424)zeertzjq2022-10-01
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Highlight of char beyond line end is not correct. (Chuan Wei Foo) Solution: Fix counting NUL as one cell. Draw one more character if the EOL is part of the match. (closes vim/vim#7883) https://github.com/vim/vim/commit/41f0895c6e3c7b921e3c102ad42be52b1be48018 Reorder test_search.vim to match Vim.
| * | fix(dist): update neovim-qt, win32tools.zip #20413Justin M. Keyes2022-09-30
| |/ | | | | | | | | - fix regression by #20411 - `diff.exe` is required for non-default 'diffopt' (diffopt=filler, diffopt=context, …) - the names of some required nvim-qt DLLs changed
| * dist(win): update neovim-qt, win32tools.zip #20411Justin M. Keyes2022-09-30
| | | | | | | | | | - update curl.exe (+ ca bundle), tee.exe, xxd.exe - remove diff.exe because `diffopt=internal` is now the default - update neovim-qt
| * feat: update unicode tablesbfredl2022-09-30
| |
| * Merge pull request #20343 from zeertzjq/virt-lines-vcolbfredl2022-09-30
| |\ | | | | | | fix(extmarks): make virt_lines always start at 0 virtcol
| | * fix(extmarks): make virt_lines always start at 0 virtcolzeertzjq2022-09-25
| | |
| * | Merge pull request #20364 from zeertzjq/parse-cmd-omitbfredl2022-09-30
| |\ \ | | | | | | | | fix(api)!: nvim_parse_cmd omit "count" "range" "reg" if not supported
| | * | fix(api)!: nvim_parse_cmd omit "count" "range" "reg" if not supportedzeertzjq2022-09-30
| | | |
| * | | docs: fix typos (#20394)dundargoc2022-09-30
| | | | | | | | | | | | | | | | | | | | Co-authored-by: Raphael <glephunter@gmail.com> Co-authored-by: smjonas <jonas.strittmatter@gmx.de> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
| * | | feat(nvim_cmd): allow using first argument as countFamiu Haque2022-09-29
| |/ / | | | | | | | | | | | | Allows `nvim_cmd` to use the first argument as count for applicable commands. Also adds support for non-String arguments to `nvim_cmd`.
| * | Merge pull request #20381 from cryptomilk/asn-vtermJames McCoy2022-09-29
| |\ \ | | | | | | | | build(deps): require libvterm version 0.3
| | * | build(deps): require libvterm version 0.3Andreas Schneider2022-09-28
| | | |
| * | | Merge pull request #20382 from cryptomilk/asn-termkeyJames McCoy2022-09-29
| |\ \ \ | | | | | | | | | | build(deps): require libtermkey version 0.22