aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Merge pull request #20544 from lewis6991/exitfreedebugLewis Russell2022-10-08
|\ | | | | build: remove EXITFREE for debug builds
| * build: remove EXITFREE for debug buildsLewis Russell2022-10-08
| | | | | | | | | | | | | | | | | | When EXITFREE is defined, uv handles are not closed on exit in order to better detect memory leaks. However the cost of this is that by not closing the handles there can be lag when exiting nvim. This change removes EXITFREE from debug builds in order to avoid this exit lag for regular debug builders who are not running ASAN.
* | vim-patch:9.0.0692: PoE filter files are not recognized (#20542)ObserverOfTime2022-10-08
|/ | | | | Problem: PoE filter files are not recognized. Solution: Add a pattern to detect PoE filter files. (closes vim/vim#11305) https://github.com/vim/vim/commit/b7f52f5659c68b61ccc645ef866f8fd82361cd26
* 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`.