Problem: Cursor position invalid when scrolling with 'smoothscroll' set.
(Ernie Rael)
Solution: Add w_valid_skipcol and clear flags when it changes. Adjust
w_skipcol after moving the cursor.
2fbabd238a
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: With 'smoothscroll' and 'scrolloff' non-zero the cursor position
is not properly adjusted in a long line.
Solution: Move the cursor further up or down in the line.
118c235112
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: With 'smoothscroll' the cursor position s not adjusted in a long
line.
Solution: Move the cursor further up or down in the line.
8cf3459878
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: "<<<" shows for 'smoothscroll' even when 'showbreak is set.
Solution: When 'showbreak' is set do not display "<<<".
0937b9fb24
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Tests failing with 'breakindent', 'number' and "n" in 'cpo'.
Solution: Do count the number column in topline if 'breakindent' is set.
3725116f6e
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Tests failing with 'smoothscroll', 'number' and "n" in 'cpo'.
Solution: Do not count number column in topline if columns are skipped.
35b251d2c2
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Breakindent test accepts wrong result.
Solution: Fix the number column and adjust the expected text.
06618f94f1
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: First line not scrolled properly with 'smoothscroll' and
'scrolloff' zero and using "k".
Solution: Make sure the cursor position is visible.
46b54747c5
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Cursor line only partly shows with 'smoothscroll' and 'scrolloff'
zero.
Solution: Do not use 'smoothscroll' when adjusting the bottom of the window.
(closesvim/vim#11269)
9bab7a0243
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Negative topline using CTRL-Y with 'smoothscroll' and 'diff'.
(Ernie Rael)
Solution: Only use 'smoothscroll' when 'wrap' is set.
1a58e1d97c
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: 'smoothscroll' not tested with 'number' and "n" in 'cpo'.
Solution: Add tests, fix uncovered problem.
b6aab8f44b
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: No indication when the first line is broken for 'smoothscroll'.
Solution: Show "<<<" in the first line.
406b5d89e1
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: with 'smoothscroll' set CTRL-E does not work properly when
'foldmethod' is set to "indent". (Yee Cheng Chin)
Solution: Merge the code for scroling with folds and 'smoothscroll'.
(closesvim/vim#11262)
6b2d4ff714
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: CTRL-Y does not stop at line 1. (John Marriott)
Solution: Stop at line 1 when 'smoothscroll' is not set. (closesvim/vim#11261)
8df9748edb
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: 'smoothscroll' is not copied to a new window on :split.
Solution: Copy the option value. Add a test.
b1fd26d208
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Cannot scroll by screen line if a line wraps.
Solution: Add the 'smoothscroll' option. Only works for CTRL-E and CTRL-Y
so far.
f6196f4244
vim-patch:9.0.0641: missing part of the new option code
Problem: Missing part of the new option code.
Solution: Add missing WV_SMS.
bbbda8fd81
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Using uninitialized memory with fuzzy matching.
Solution: Initialize the arrays used to store match positions.
caf642c25d
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: The ruler percentage can't be localized.
Solution: Use a string that can be translated. (Emir Sari, closesvim/vim#12311)
971cd2b8bc
Co-authored-by: Emir SARI <emir_sari@icloud.com>
Problem: Heredoc in scripts does not accept lower case marker.
Solution: Allow lower case only in non-Vim scripts. (Ken Takata,
closesvim/vim#6019)
6ab0953fef
Problem: Heredoc for interfaces does not support "trim".
Solution: Update the script heredoc support to be same as the :let command.
(Yegappan Lakshmanan, closesvim/vim#5916)
6c2b7b8055
Problem: Functions without arguments are not always declared properly.
Solution: Use "(void)" instead of "()". (Yegappan Lakshmanan, closesvim/vim#12031)
a23a11b5bf
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Problem: Function for setting options not used consistently.
Solution: Use a function for 'encoding' and terminal options. (Yegappan
Lakshmanan, closesvim/vim#12099)
c727b19e9f
Problem: Still some "else if" constructs for setting options.
Solution: Add a few more functions for handling options. (Yegappan
Lakshmanan, closesvim/vim#12090)
c6ff21e876
Problem: Too many "else if" statements in handling options.
Solution: Add more functions for handling option changes. (Yegappan
Lakshmanan, closesvim/vim#12060)
5da901bb68
Problem: Too many "else if" statements to handle option values.
Solution: Add more functions to handle option value changes. (Yegappan
Lakshmanan, closesvim/vim#12058)
6d611de58c
Problem: Too many "else if" statements for handling options.
Solution: Add more functions to handle options. (Yegappan Lakshmanan,
closesvim/vim#12051)
8ad862a1f9
Problem: Handling new value of an option has a long "else if" chain.
Solution: Use a function pointer. (Yegappan Lakshmanan, closesvim/vim#12015)
af93691b53
Problem: Crash when recovering from corrupted swap file.
Solution: Bail out when the line index looks wrong. (closesvim/vim#12276)
bf1b713202
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Instead of nested linked lists, store autocommands in a flat, contiguous
kvec_t, with one kvec_t per event type. Previously patterns were stored
in each node of the outer linked list, so they can be matched only once
on repeating patterns. They are now reference counted and referenced in
each autocommand, and matching is skipped if the pattern repeats. Speeds
up creation and deletion, execution is not affected.
Co-authored-by: ii14 <ii14@users.noreply.github.com>
fix(extmarks): disallow removing extmarks in on_lines callbacks
decor_redraw_start (which runs before decor_providers_invoke_lines) gets
references for the extmarks on a specific line. If these extmarks are
deleted in on_lines callbacks then this results in a heap-use-after-free
error.
Fixes#22801
Problem: Using uninitialized memory when argument is missing.
Solution: Check there are sufficient arguments before the base.
(closesvim/vim#12302)
b7f2270bab
Co-authored-by: Bram Moolenaar <Bram@vim.org>