Problem: getregionpos() depends on 'linebreak' setting
Solution: Reset linebreak setting temporarily (McAuley Penney)
When a line is wrapped on word boundaries, getregionpos() may report a
different end column for a visual block than the cursor position used to
define the selection.
Update the blockwise calculation in getregionpos() to use the same
wrapping assumptions as visual block mode, so the reported region
matches the selection boundaries.
Add a regression test that forces wrapping and checks that the end
position stays consistent under "setlocal wrap" and "setlocal
linebreak".
closes: vim/vim#190068ea0e7205c
Co-authored-by: McAuley Penney <jacobmpenney@gmail.com>
Problem: At "if(0) do if(0); while(0); else", else should be aligned
with outer if, but is aligned with inner if.
Solution: In function find_match, ignore "if" and "else" inside a
do-while loop, when looking for "if". (Anttoni Erkkilä)
closes: vim/vim#190049d661b057e
Co-authored-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com>
Problem: tests: "Xm4" test directory may not be deleted
Solution: Use "R" flag with mkdir() call to have the directory
recursively deleted at the end of function Test_m4_format()
(Muraoka Taro)
Test_m4_format in test_filetype.vim creates the "Xm4" directory with the
'D' flag. Then it creates two files in the "Xm4" directory. One of them,
"alocal.m4," was created with the 'D' flag, so it will disappear after
the test is complete. However, the other, "configure.ac," was created
without any flags, so it will remain even after the test is complete.
Because the parent directory "Xm4" was created with the 'D' flag, the
latter "configure.ac" remains and is not empty, so it will not be
deleted.
This forces the directory to be deleted regardless of its contents. As a
result, the two files "alocal.m4" and "configure.ac" created in the
directory are no longer needed, so they have been deleted.
closes: vim/vim#18995de37e7430a
Co-authored-by: Muraoka Taro <koron.kaoriya@gmail.com>
Problem: bpftrace files are not recognized from the hashbang line.
Solution: Add a hashbang check (Stanislaw Gruszka)
closes: vim/vim#18992f2814754c0
Co-authored-by: Stanislaw Gruszka <stf_xl@wp.pl>
Problem: Vim9: :let will soon be disallowed.
Solution: Add v:disallow_let temporarily. Fix tests.
cfcd011fcd
The change to use checkforcmd() is already included in the port of patch
9.0.1505. This commit adds the missing :const check.
N/A patches:
vim-patch:8.2.1397: Vim9: return type of maparg() not adjusted for fourth arg
vim-patch:8.2.1623: Vim9: using :call where it is not needed
vim-patch:8.2.1766: Vim9: Some tests are still using :let
vim-patch:8.2.1788: Vim9: still allows :let for declarations
vim-patch:8.2.1882: Vim9: v:disallow_let is no longer needed
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Vim9: debug text misses one line of return statement.
Solution: Add a line when not at a debug instruction. (closesvim/vim#9137)
112bed0cbe
Vim9 test "Test_Debugger_break_at_return()" commented out
to avoid unexpected side-effects even if all other tests pass.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Vim9: :disass completion does not understand "s:".
Solution: Expand "s:" to a pattern. (closesvim/vim#8780)
47016f5772
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Vim9: completion for :disassemble is incomplete.
Solution: Recognize the "debug" and "profile" arguments.
4ee9d8e04d
Vim9 ":disassemble" is N/A.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Completion for :disas sorts local functions first.
Solution: Sort local functions last, like with :delfunc. (Naohiro Ono,
closesvim/vim#8860)
dfe04dbff5
Vim9 ":disassemble" is N/A
but "commented" test code is a hint for future patches.
Co-authored-by: naohiro ono <obcat@icloud.com>
Problem: After :botright copen and closing the quikfix window, the
cursor ends up in the wrong window. The problem is fr_child
always points to the first (leftmost for FR_ROW, topmost for
FR_COL) child frame. When do :vsplit, the new window is
created on the left, and frame_insert() updates the parent's
fr_child to point to this new left window.
Solution: Create a snapshot before open the quickfix window and restore
it when close it (glepnir).
closes: vim/vim#18961b43f9ded7e
Co-authored-by: glepnir <glephunter@gmail.com>
Problem: Converting a funcref to a string leaves out "g:", causing the
meaning of the name depending on the context.
Solution: Prepend "g:" for a global function.
c4ec338fb8
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Co-authored-by: Jan Edmund Lazo <jan.lazo@mail.utoronto.ca>
Problem: Not enough tests for :setlocal omnifunc (after 9.1.1991).
Solution: Move the last :new after :setlocal. Also test with 'complete'
(zeertzjq).
closes: vim/vim#18958cedb1a3171
Problem: :setlocal changes effective global 'omnifunc' (Maxim Kim)
Solution: Don't change global callback when using :setlocal (zeertzjq).
fixes: vim/vim#18948closes: vim/vim#189513e82b0ebfe
Problem: Invalid memory access in Ex mode with global command.
Solution: Make sure the cursor is on a valid line. (closesvim/vim#7238)
3b6d57f2ce
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem:
- Despite [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)
claims to be a "data-only" plugin, in fact it still provides some
user-facing commands because they haven't been upstreamed to Nvim.
Solution:
- Upstream `:LspRestart`, `:LspStart` and `:LspStop` commands as `:lsp
restart`, `:lsp start` and `:lsp stop` respectively.
Co-authored-by: glepnir <glephunter@gmail.com>
Problem: tests: test suite may stop on error in gen_opt_test.vim
Solution: Use a different output file for log files (Muraoka Taro)
When running newtests, it may unexpectedly stop just before
test_options_all.
Cause: When generating the opt_test.vim file for test_options_all, the
failure is detected by the existence of test.log. Therefore, if a test
performed before test_options_all fails and test.log is created, it is
mistakenly thought that the generation of opt_tet.vim has failed, and
the test suite stops there.
So let's change the filename created when utils/gen_opt_test.vim fails
from test.log to gen_opt_test.log, so that it can be detected
independently from other test failures.
closes: vim/vim#1892835de719c0c
Co-authored-by: MURAOKA Taro <koron.kaoriya@gmail.com>
Problem: :helpclose incorrectly accepts a range and a count.
Solution: Remove EX_COUNT and EX_RANGE from the command definition.
(Doug Kearns)
closes: vim/vim#189174c141bae3b
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
Problem: Vim9: comparing partial with function fails.
Solution: Support this comparison. Avoid a crash. (closesvim/vim#9909)
Add more test cases.
ed0c62e7b1
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Accessing beyond allocated memory when using the cmdline window in
Ex mode.
Solution: Use "*" instead of "'<,'>" for Visual mode.
c6fdb15d42
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Using invalid pointer with "V:" in Ex mode.
Solution: Correctly handle the command being changed to "+".
f50808ed13
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Visual range does not work before command modifiers.
Solution: Move Visual range to after command modifiers.
c75bca3ee9
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Crash when buffer gets deleted inside charconvert during save
Solution: Check for `b_saving` inside `can_unload_buffer()`, so we don’t try to
unload a buffer while it’s still being saved (glepnir).
closes: vim/vim#18901fe1c57cd2c
Co-authored-by: glepnir <glephunter@gmail.com>
Problem: Wrong cursor position after formatting with long 'formatprg'.
Solution: Don't show hit-enter prompt when there are stuffed characters.
Previously a stuffed character at the hit-enter prompt will dismiss the
prompt immediately and be put in the typeahead buffer, which leads to
incorrect behavior as the typeahead buffer is processed after the stuff
buffers. Using vungetc() when KeyStuffed is TRUE can fix this problem,
but since the hit-enter prompt isn't visible anyway (and is likely not
desired here), just skip the prompt instead, which also avoids a wait
when using "wait" instead of "hit-enter" in 'messagesopt'.
fixes: vim/vim#18905closes: vim/vim#1890650325c3d59
Problem: Vim9: compiled functions are not profiled.
Solution: Add initial changes to profile compiled functions. Fix that a
script-local function was hard to debug.
b204990346
Port only test_profile.vim.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Vim9: profiling try/catch not correct.
Solution: Add profile instructions. Fix that "entry" did not rethrow an
excpetion.
107e9cecf7
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Test may leave file behind.
Solution: Delete the temporary file. Don't profile in the running Vim
instance.
8c801b374b
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Profile test fails on MS-Windows.
Solution: Do the profiling in a separate Vim command.
98989a0014
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Vim9: profiling only works for one function.
Solution: Select the right instructions when calling and returning.
(closesvim/vim#7743)
e5ea346a07
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: When exiting at the end of the more prompt (at the hit enter
prompt) by hitting q the recording mode will be started.
(Jakub Łuczyński)
Solution: Don't add the q key to the typeahead buffer
in the function wait_return (Bjoern Foersterling)
fixes: vim/vim#2589closes: vim/vim#18889ecce3497fa
Co-authored-by: Bjoern Foersterling <bjoern.foersterling@gmail.com>
Problem: Wrong display when using setline() at hit-enter prompt
(after 8.2.3204).
Solution: Only skip scrolling for changed lines in top area if it's
scrolled down due to w_topline change. Also add more testing
for what 8.2.3204 fixed (zeertzjq).
closes: vim/vim#18887e72eacceab
Problem: Wrong display when scrolling with 'scrolloff' and calling
sign_unplace() and setline() in CursorMoved (after 8.2.3204).
Solution: Still scroll for changed lines below the top area when the top
is scrolled down (zeertzjq)
closes: vim/vim#188782da433cff7
Problem: :stag does not use 'swichtbuf' option, though the
documentation states differently
(Christian Brabandt)
Solution: Respect 'switchbuf' option (Yegappan Lakshmanan).
related: vim/vim#18845closes: vim/vim#18856efc7509be2
Cherry-pick some test_tagjump.vim changes from patches 9.0.{0363,0767}.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: gewininfo() does not return if statusline is visible
Solution: Add status_height to the dict items returned by
getwininfo() (Hirohito Higashi)
closes: vim/vim#18841a04ab5f04c
Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Problem: tests: Test_windows_external_cmd_in_cwd() is only run in huge
builds (after 9.1.1947).
Solution: Move it to test_system.vim so that it is run in normal builds.
closes: vim/vim#188532c164f02c6
Problem: tests: need better tests for tf files
Solution: Add better filetype test for terraform/tf filetype
closes: vim/vim#1833923f23e611f
Co-authored-by: Christian Brabandt <cb@256bit.org>
Problem: tests: Test_tagjump.vim leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!
05a56aabee
Co-authored-by: Christian Brabandt <cb@256bit.org>