1
0
forked from aniani/vim
Commit Graph

608 Commits

Author SHA1 Message Date
zeertzjq
1f025b01e2 patch 9.0.1961: 'listchars' completion misses "multispace" and "leadmultispace"
Problem:  Cmdline completion for 'listchars' fields doesn't include
          "multispace" and "leadmultispace" (after 9.0.1958).
Solution: Include "multispace" and "leadmultispace" in lcstab.

closes: #13225

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2023-09-30 12:43:07 +02:00
Yee Cheng Chin
900894b09a patch 9.0.1958: cannot complete option values
Problem:  cannot complete option values
Solution: Add completion functions for several options

Add cmdline tab-completion for setting string options

Add tab-completion for setting string options on the cmdline using
`:set=` (along with `:set+=` and `:set-=`).

The existing tab completion for setting options currently only works
when nothing is typed yet, and it only fills in with the existing value,
e.g. when the user does `:set diffopt=<Tab>` it will be completed to
`set diffopt=internal,filler,closeoff` and nothing else. This isn't too
useful as a user usually wants auto-complete to suggest all the possible
values, such as 'iblank', or 'algorithm:patience'.

For set= and set+=, this adds a new optional callback function for each
option that can be invoked when doing completion. This allows for each
option to have control over how completion works. For example, in
'diffopt', it will suggest the default enumeration, but if `algorithm:`
is selected, it will further suggest different algorithm types like
'meyers' and 'patience'. When using set=, the existing option value will
be filled in as the first choice to preserve the existing behavior. When
using set+= this won't happen as it doesn't make sense.

For flag list options (e.g. 'mouse' and 'guioptions'), completion will
take into account existing typed values (and in the case of set+=, the
existing option value) to make sure it doesn't suggest duplicates.

For set-=, there is a new `ExpandSettingSubtract` function which will
handle flag list and comma-separated options smartly, by only suggesting
values that currently exist in the option.

Note that Vim has some existing code that adds special handling for
'filetype', 'syntax', and misc dir options like 'backupdir'. This change
preserves them as they already work, instead of converting to the new
callback API for each option.

closes: #13182

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
2023-09-29 20:42:32 +02:00
zeertzjq
db54e989b5 patch 9.0.1923: curswant wrong on click with 've' and 'wrap' set
Problem:  curswant wrong on click with 've' and 'wrap' set
Solution: Add w_leftcol to mouse click column.

closes: #13142

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2023-09-21 16:33:09 +02:00
zeertzjq
9994160bfe patch 9.0.1742: wrong curswant when clicking on second cell of double-width char
Problem:  Wrong curswant when clicking and the second cell of a
          double-width char.
Solution: Don't copy virtcol of the first char to the second one.

closes: #12842

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2023-08-19 13:08:50 +02:00
Sean Dewar
876f5fb570 patch 9.0.1726: incorrect heights in win_size_restore()
Problem: incorrect heights in win_size_restore()
Solution: avoid restoring incorrect heights in win_size_restore()

Changing 'showtabline' or 'cmdheight' in the cmdwin restores incorrect
window heights after closing the cmdwin.

This may produce a gap between the cmdline and the window above.

Solution: restore window sizes only if the number of lines available for windows
changed; subtract the rows of the tabline, cmdline and last window's statusline
from 'lines' (other statuslines don't matter).

closes: #12704

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Sean Dewar <seandewar@users.noreply.github.com>
2023-08-17 22:40:05 +02:00
zeertzjq
47eec6716b patch 9.0.1598: screenchar() and others are wrong with DBCS 'encoding'
Problem:    screenchar(), screenchars() and screenstring() do not work
            properly when 'encoding' is set to a double-byte encoding.
Solution:   Fix the way the bytes of the characters are obtained.
            (issue #12469)
2023-06-01 20:26:55 +01:00
Bram Moolenaar
79cdf026f1 patch 9.0.1571: RedrawingDisabled not used consistently
Problem:    RedrawingDisabled not used consistently.
Solution:   Avoid RedrawingDisabled going negative.  Set RedrawingDisabled in
            win_split_ins(). (closes #11961)
2023-05-20 14:07:00 +01:00
zeertzjq
d619d6a9c6 patch 9.0.1526: condition is always true
Problem:    Condition is always true.
Solution:   Remove unnecessary condition. (closes #12359)
2023-05-08 15:56:21 +01:00
Sean Dewar
fc8a601c32 patch 9.0.1461: ruler not drawn correctly when using 'rulerformat'
Problem:    Ruler not drawn correctly when using 'rulerformat'.
Solution:   Adjust formatting depending on whether the ruler is drawn in the
            statusline or the command line. (Sean Dewar, closes #12246)
2023-04-17 16:41:20 +01:00
Yegappan Lakshmanan
c727b19e9f patch 9.0.1374: function for setting options not used consistently
Problem:    Function for setting options not used consistently.
Solution:   Use a function for 'encoding' and terminal options. (Yegappan
            Lakshmanan, closes #12099)
2023-03-03 12:26:15 +00:00
Yegappan Lakshmanan
c6ff21e876 patch 9.0.1369: still some "else if" constructs for setting options
Problem:    Still some "else if" constructs for setting options.
Solution:   Add a few more functions for handling options. (Yegappan
            Lakshmanan, closes #12090)
2023-03-02 14:46:48 +00:00
Yegappan Lakshmanan
a23a11b5bf patch 9.0.1336: functions without arguments are not always declared properly
Problem:    Functions without arguments are not always declared properly.
Solution:   Use "(void)" instead of "()". (Yegappan Lakshmanan, closes #12031)
2023-02-21 14:27:41 +00:00
Yegappan Lakshmanan
6ec6666047 patch 9.0.1237: code is indented more than necessary
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11858)
2023-01-23 20:46:21 +00:00
Luuk van Baal
ba936f6f4e patch 9.0.1061: cannot display 'showcmd' somewhere else
Problem:    Cannot display 'showcmd' somewhere else.
Solution:   Add the 'showcmdloc' option. (Luuk van Baal, closes #11684)
2022-12-15 13:15:39 +00:00
Bram Moolenaar
84497cd06f patch 9.0.0967: leaking memory from autocmd windows
Problem:    Leaking memory from autocmd windows.
Solution:   Free window when auc_win is not NULL.
2022-11-28 20:34:52 +00:00
Bram Moolenaar
f86490ed4f patch 9.0.0966: some compilers don't allow a declaration after a label
Problem:    Some compilers don't allow a declaration after a label.
Solution:   Move the declaration to the start of the block. (John Marriott)
2022-11-28 19:11:02 +00:00
Bram Moolenaar
e76062c078 patch 9.0.0965: using one window for executing autocommands is insufficient
Problem:    Using one window for executing autocommands is insufficient.
Solution:   Use up to five windows for executing autocommands.
2022-11-28 18:51:43 +00:00
Bram Moolenaar
24fe33a83a patch 9.0.0934: various code formatting issues
Problem:    Various code formatting issues.
Solution:   Improve code formatting.
2022-11-24 00:09:02 +00:00
Bram Moolenaar
d6e91385f0 patch 9.0.0867: wildmenu redrawing code is spread out
Problem:    Wildmenu redrawing code is spread out.
Solution:   Refactor to move code together. (closes #11528)
2022-11-12 17:44:13 +00:00
Luuk van Baal
7b224fdf4a patch 9.0.0844: handling 'statusline' errors is spread out
Problem:    Handling 'statusline' errors is spread out.
Solution:   Pass the option name to the lower levels so the option can be
            reset there when an error is encountered. (Luuk van Baal,
            closes #11467)
2022-11-07 12:16:51 +00:00
dundargoc
c57b5bcd22 patch 9.0.0828: various typos
Problem:    Various typos.
Solution:   Correct typos. (closes #11432)
2022-11-02 13:30:51 +00:00
Martin Tournoij
ba43e76fcd patch 9.0.0747: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Gradudate the +cmdline_info feature. (Martin Tournoij,
            closes #11330)
2022-10-13 22:12:15 +01:00
Bram Moolenaar
0c502d2e70 patch 9.0.0720: MS-Windows GUI may have pixel dust from antialiasing
Problem:    MS-Windows GUI may have pixel dust from antialiasing.
Solution:   When a character changes also redraw the next one. (issue #8532)
2022-10-11 12:48:44 +01:00
Bram Moolenaar
4ba5f1dab6 patch 9.0.0656: cannot specify another character to use instead of '@'
Problem:    Cannot specify another character to use instead of '@' at the end
            of the window.
Solution:   Add "lastline" to 'fillchars'. (Martin Tournoij, closes #11264,
            closes #10963)
2022-10-04 14:36:29 +01:00
Bram Moolenaar
ff85d4a107 patch 9.0.0639: checking for popup in screen_char() is too late
Problem:    Checking for popup in screen_char() is too late, the attribute has
            already been changed.
Solution:   Move check for popup to where screen_char() is called.
2022-10-02 15:21:04 +01:00
Bram Moolenaar
393f8d61f5 patch 9.0.0638: popup menu highlight wrong on top of preview popup
Problem:    Popup menu highlight wrong on top of preview popup. (Yegappan
            Lakshmanan)
Solution:   Also check for the popup menu in screen_line().
2022-10-02 14:28:30 +01:00
Bram Moolenaar
a4e0b9785e patch 9.0.0634: evaluating "expr" options has more overhead than needed
Problem:    Evaluating "expr" options has more overhead than needed.
Solution:   Use call_simple_func() for 'foldtext', 'includeexpr', 'printexpr',
            "expr" of 'spellsuggest', 'diffexpr', 'patchexpr', 'balloonexpr',
            'formatexpr', 'indentexpr' and 'charconvert'.
2022-10-01 19:43:52 +01:00
Bram Moolenaar
838b746cce patch 9.0.0592: display not cleared when scrolling back in messages
Problem:    Display not cleared when scrolling back in messages, a background
            color is set and t_ut is empty.
Solution:   Clear to the end of the display if needed. (closes #8973)
2022-09-26 15:19:56 +01:00
Bram Moolenaar
18ee0feb5d patch 9.0.0501: warning for using uninitialized value in mouse test
Problem:    Warning for using uninitialized value in mouse test.
Solution:   Clear ScreenCols when allocating it. (Dominique Pellé)
2022-09-19 11:44:11 +01:00
Bram Moolenaar
cf0995d7d7 patch 9.0.0447: using :echowin while at the hit-enter prompt causes problems
Problem:    Using :echowin while at the hit-enter prompt causes problems.
Solution:   Do not prompt for :echowin.  Postpone showing the message window.
            Start the timer when the window is displayed.
2022-09-11 21:36:17 +01:00
Bram Moolenaar
a2a8973e51 patch 9.0.0340: the 'cmdheight' zero support causes too much trouble
Problem:    The 'cmdheight' zero support causes too much trouble.
Solution:   Revert support for 'cmdheight' being zero.
2022-08-31 14:46:18 +01:00
Bram Moolenaar
b13d3405ff patch 9.0.0317: when updating the whole screen a popup may not be redrawn
Problem:    When updating the whole screen a popup may not be redrawn.
Solution:   Mark the screen and windows for redraw also when not clearing.
            Also mark popup windows for redraw.
2022-08-29 13:44:28 +01:00
Bram Moolenaar
9198de3ae2 patch 9.0.0288: when 'cmdheight' is zero some messages are not displayed
Problem:    When 'cmdheight' is zero some messages are not displayed.
Solution:   Use a popup notification window.
2022-08-27 21:30:03 +01:00
Bram Moolenaar
5416232707 patch 9.0.0279: the tiny version has the popup menu but not 'wildmenu'
Problem:    The tiny version has the popup menu but not 'wildmenu'.
Solution:   Graduate the wildmenu feature.
2022-08-26 16:58:51 +01:00
Bram Moolenaar
471c0fa3ee patch 9.0.0245: mechanism to prevent recursive screen updating is incomplete
Problem:    Mechanism to prevent recursive screen updating is incomplete.
Solution:   Add "redraw_not_allowed" and set it in build_stl_str_hl().
            (issue #10952)
2022-08-22 15:19:16 +01:00
Bram Moolenaar
a4d158b3c8 patch 9.0.0206: redraw flags are not named specifically
Problem:    Redraw flags are not named specifically.
Solution:   Prefix "UPD_" to the flags, for UPDate_screen().
2022-08-14 14:17:45 +01:00
zeertzjq
8ca29b6a35 patch 9.0.0176: checking character options is duplicated and incomplete
Problem:    Checking character options is duplicated and incomplete.
Solution:   Move checking to check_chars_options(). (closes #10863)
2022-08-09 12:53:14 +01:00
Shougo Matsushita
f39cfb7262 patch 9.0.0114: the command line takes up space even when not used
Problem:    The command line takes up space even when not used.
Solution:   Allow for 'cmdheight' to be set to zero. (Shougo Matsushita,
            closes #10675, closes #940)
2022-07-30 16:54:05 +01:00
zeertzjq
4dc513a22c patch 9.0.0070: using utfc_ptr2char_len() when length is negative
Problem:    Using utfc_ptr2char_len() when length is negative.
Solution:   Check value of length. (closes #10760)
2022-07-25 19:42:02 +01:00
Bram Moolenaar
b90818867c patch 9.0.0048: cursor in wrong column with mouse click after concealed text
Problem:    Cursor in wrong column with mouse click after concealed text.
Solution:   Store the text column when drawing text.
2022-07-09 04:56:24 +01:00
Bram Moolenaar
b67f0c8e49 patch 9.0.0040: use of set_chars_option() is confusing
Problem:    Use of set_chars_option() is confusing.
Solution:   Add "apply" argument to store the result or not.  Merge similar
            code.
2022-07-04 21:03:36 +01:00
Bram Moolenaar
96ba25ac01 patch 9.0.0036: 'fillchars' cannot have window-local values
Problem:    'fillchars' cannot have window-local values.
Solution:   Make 'fillchars' global-local. (closes #5206)
2022-07-04 17:34:33 +01:00
Bram Moolenaar
84f5463630 patch 9.0.0007: no support for double, dotted and dashed underlines
Problem:    No support for double, dotted and dashed underlines.
Solution:   Add the termcap entries and highlight modes. (closes #9553)
2022-06-29 18:39:11 +01:00
Bram Moolenaar
944cc9ceba patch 8.2.5170: tiny issues
Problem:    Tiny issues.
Solution:   Tiny improvements.
2022-06-27 22:17:37 +01:00
Bram Moolenaar
c856ceb300 patch 8.2.5144: with 'lazyredraw' set completion menu may be wrong
Problem:    With 'lazyredraw' set completion menu may be displayed wrong.
Solution:   When the popup menu is visible do not insert a screen line.
            (closes #106010)
2022-06-21 18:10:39 +01:00
zeertzjq
b5f0801b1f patch 8.2.5070: unnecessary code
Problem:    Unnecessary code.
Solution:   Remove code that isn't needed. (closes #10534)
2022-06-09 13:55:28 +01:00
Bram Moolenaar
aca12fd89b patch 8.2.5066: timer_create is not available on every Mac system
Problem:    Timer_create is not available on every Mac system. (Hisashi T
            Fujinaka)
Solution:   Adjust #ifdef.
2022-06-07 10:16:15 +01:00
Paul Ollis
6574577cac patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Problem:    Using gettimeofday() for timeout is very inefficient.
Solution:   Set a platform dependent timer. (Paul Ollis, closes #10505)
2022-06-05 16:55:54 +01:00
Bram Moolenaar
249591057b patch 8.2.4911: the mode #defines are not clearly named
Problem:    The mode #defines are not clearly named.
Solution:   Prepend MODE_.  Renumber them to put the mapped modes first.
2022-05-07 20:01:16 +01:00
Bram Moolenaar
cee9c844f2 patch 8.2.4718: @@@ in the last line sometimes drawn in the wrong place
Problem:    @@@ in the last line sometimes drawn in the wrong place.
Solution:   Make sure the column is valid. (closes #10130)
2022-04-09 12:40:13 +01:00