aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| * | 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
| | * | | build(deps): require libtermkey version 0.22Andreas Schneider2022-09-28
| | |/ / | | | | | | | | | | | | Reduces #ifdef code.
| * | | fix(api): fix nvim_cmd crash with filename expansion (#20397)zeertzjq2022-09-29
| | | |
| * | | fix(column): move sign sentinel after inserting/deleting lines (#20400)zeertzjq2022-09-29
| | | |
| * | | fix(spell): correct spell move behavior without "noplainbuffer" (#20386)zeertzjq2022-09-28
| | | |
| * | | Merge pull request #20375 from famiu/refactor/get_optionbfredl2022-09-28
| |\ \ \ | | | | | | | | | | refactor: replace unnecessary helper functions in optionstr.c
| | * | | refactor: replace unnecessary helper functions in optionstr.cFamiu Haque2022-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces unnecessary helper functions in `optionstr.c` such as `get_option_flags()`, `get_option_fullname()`, `set_option_flag()`, `is_global_option()`, etc. with a single `get_option()` helper function that allows direct access to the `options` array. Also refactors `f_exists()` to use `get_varp_scope` instead of using `get_option_tv`. This opens up the path for removing `getoptions_T` altogether later down the line since the hidden option logic is no longer needed.
| * | | | fix(lua): fix architecture-dependent behavior in usercmd "reg" (#20384)zeertzjq2022-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I don't think using an integer as a NUL-terminated string can work on big-endian systems, at least. This is also not tested. Add a test. Also fix a mistake in the docs of nvim_parse_cmd.
| * | | | fix: compiler warnings from clang 15 (#20321)dundargoc2022-09-28
| | |/ / | |/| | | | | | | | | | Add -Wno-strict-prototypes flag to external dependencies to suppress cjson warnings. These needs to be fixed upstream first.
| * | | fix(window): fix equalization with cmdheight=0 (#20369)zeertzjq2022-09-28
| | | |
| * | | Merge pull request #15373 from smolck/lua-notify-dictwatcherbfredl2022-09-27
| |\ \ \ | | | | | | | | | | fix(nvim): notify dict watchers on nvim_set_var and vim.g setter
| | * | | fix(api): notify dict watchers on nvim_set_var and vim.g settersmolck2022-09-27
| | |/ / | | | | | | | | | | | | | | | | Co-authored-by: bfredl <bjorn.linse@gmail.com> Co-authored-by: Christian Clason <c.clason@uni-graz.at>
| * | | vim-patch:9.0.0604: luacheckrc file is not recognized (#20371)ObserverOfTime2022-09-27
| | | | | | | | | | | | | | | | | | | | Problem: Luacheckrc file is not recognized. Solution: Use lua filetype for luacheckrc. (closes vim/vim#11236) https://github.com/vim/vim/commit/49c311c9b18e18c05f93728d1f8a552923a18423
| * | | vim-patch:9.0.0602: new TypeScript extensions are not recognizedChristian Clason2022-09-27
| | | | | | | | | | | | | | | | | | | | | | | | Problem: New TypeScript extensions are not recognized. Solution: Recognize .mts and .cts files. (closes vim/vim#11237) https://github.com/vim/vim/commit/7fc6c0e4dab4e80b9806a973936af54276468513
| * | | vim-patch:9.0.0600: GYP files are not recognizedChristian Clason2022-09-27
| | | | | | | | | | | | | | | | | | | | | | | | Problem: GYP files are not recognized. Solution: Recognize GYP files. (closes vim/vim#11242) https://github.com/vim/vim/commit/d32474229213276c64cb293885a975dcb406fbc9
| * | | vim-patch:9.0.0599: latexmkrc files are not recognizedChristian Clason2022-09-27
| |/ / | | | | | | | | | | | | | | | Problem: Latexmkrc files are not recognized. Solution: Use Perl filetype for latexmkrc files. (closes vim/vim#11241) https://github.com/vim/vim/commit/cde031938537970938437cdbb235bc0da755ae4a
| * | vim-patch:9.0.0595: extra newline in messages after a verbose shell message ↵zeertzjq2022-09-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#20359) Problem: Extra newline in messages after a verbose shell message. Solution: Output the newline with msg_putchar_attr(). (closes vim/vim#11233) Make it possible to filter a screendump before comparing it. https://github.com/vim/vim/commit/1190139ed01c27539615beea9559a88b2551daf3 Cherry-pick Test_message_more_scrolledback() from patch 9.0.0592 because Nvim already behaves as intended.
| * | fix(ui): redraw end of buffer if last line is modified (#20354)zeertzjq2022-09-27
| | |
| * | fix(ui): allow redrawing statusline when msgsep is used (#20337)zeertzjq2022-09-26
| | |
| * | Merge pull request #20351 from bfredl/cmdfix2bfredl2022-09-26
| |\ \ | | | | | | | | fix(cmdline): don't send invalid cursor with incsearch and cmdheight=0
| | * | fix(cmdline): don't send invalid cursor with incsearch and cmdheight=0bfredl2022-09-26
| | | | | | | | | | | | | | | | fixes #20306
| * | | docs: fix typos (#20150)dundargoc2022-09-26
| |/ / | | | | | | | | | | | | | | | | | | Co-authored-by: Miguel Carneiro <mcarneiromorenas@gmail.com> Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: Raphael <glephunter@gmail.com> Co-authored-by: C.D. MacEachern <craig.daniel.maceachern@gmail.com> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
| * | fix(messages): validate msg_grid before silent! message with cmdheight=0bfredl2022-09-26
| | | | | | | | | | | | fixes #20316
| * | feat(terminal): recognize underdouble and undercurlAndrey Bushev2022-09-26
| | |
| * | fix(docs): invalid :help links #20345Justin M. Keyes2022-09-25
| | | | | | | | | | | | | | | Fix those naughty single quotes. closes #20159
| * | vim-patch:9.0.0586: missing change in test (#20347)zeertzjq2022-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Missing change in test. Solution: Add the test change. https://github.com/vim/vim/commit/124af71a28a633fa655cff41bc21d398481ce45f vim-patch:9.0.0585: when long message test fails the error message is not visible Problem: When long message test fails the error message is not visible. Solution: Dump more lines. https://github.com/vim/vim/commit/6a879878f4e1918a05244e6acd4c73c3135cf941
| * | fix!: make :undo! notify buffer update callbacks (#20344)zeertzjq2022-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | When :undo! was introduced to Nvim the implementation of 'inccommand' preview callback hasn't been fully decided yet, so not notifying buffer update callbacks made sense for 'inccommand' preview callback in case it needs to undo the changes itself. Now it turns out that the undo-and-forget is done automatically for 'inccommand', so it doesn't make sense for :undo! to avoid notifying buffer update callbacks anymore.
| * | fix(inccommand): deal with unsynced undo (#20041)zeertzjq2022-09-26
| |/
| * refactor: move klib out of src/nvim/ #20341dundargoc2022-09-25
| | | | | | | | It's confusing to mix vendored dependencies with neovim source code. A clean separation is simpler to keep track of and simpler to document.
| * vim-patch:9.0.0583: only recognizing .m3u8 files is inconsistent (#20342)Christian Clason2022-09-25
| | | | | | | | | | Problem: Only recognizing .m3u8 files is inconsistent. Solution: Also matc .m3u files. (issue vim/vim#11204) https://github.com/vim/vim/commit/b9725bc7f6427654eb4e35874034b0ec1b6b96b3
| * feat: ":write!" skips "file changed" warning #18665Louis Sven Goulet2022-09-24
| | | | | | | | | | | | | | | | | | | | Problem: Cannot opt-out of "WARNING: The file has been changed since reading it!!!", even with ":write!". Solution: Change ":write!" to skip the warning. closes #7270