Commit Graph

417 Commits

Author SHA1 Message Date
Björn Linse
21cf4b0ce6 screen: showcmd should never move the cursor
Also restore the symmetry between grid_puts_line_start and
grid_puts_line_flush.
2019-06-13 20:22:37 +02:00
Jan Edmund Lazo
22d58ab664 vim-patch:8.1.0213: CTRL-W CR does not work properly in a quickfix window
Problem:    CTRL-W CR does not work properly in a quickfix window.
Solution:   Split the window if needed. (Jason Franklin)
0a08c63da1
2019-06-12 00:22:16 -04:00
Justin M. Keyes
04e2ba85b1 doc [ci skip] #10129
- document lua vim.loop #10123
2019-06-10 15:53:42 +02:00
Justin M. Keyes
f6f9e4a231 Merge #10114 from erw7/vim-8.1.1270
vim-patch:8.1.{0629,1270,1271,1283,1288,1289,1350,1375,1390,1475}
2019-06-07 21:28:53 +02:00
Björn Linse
e50aa2a6c6 normal: Don't exit CTRL-O mode after processing K_EVENT 2019-06-04 13:59:43 +02:00
erw7
485972dd64 vim-patch:8.1.0629: "gn" selects the wrong text with a multi-line match
Problem:    "gn" selects the wrong text with a multi-line match.
Solution:   Get the end position from searchit() directly. (closes vim/vim#3695)
5d24a2257e
2019-06-04 09:53:55 +09:00
Jan Edmund Lazo
3c3b7844b9 lint 2019-05-26 21:50:37 -04:00
Jan Edmund Lazo
21f160746a vim-patch:8.1.0020: cannot tell whether a register is executing or recording
Problem:    Cannot tell whether a register is being used for executing or
            recording.
Solution:   Add reg_executing() and reg_recording(). (Hirohito Higashi,
            closes vim/vim#2745)  Rename the global variables for consistency.  Store
            the register name in reg_executing.
0b6d911e5d
2019-05-26 20:24:11 -04:00
Andrej Zieger
80f40f0203 lint 2019-05-26 19:32:32 +02:00
Justin M. Keyes
ae846b41df vim-patch:8.0.1496: VIM_CLEAR()
Problem:    Clearing a pointer takes two lines.
Solution:   Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,
            closes #2629)

vim-patch:8.0.1481
2019-05-25 10:07:05 +02:00
Jan Edmund Lazo
9c43743945 lint 2019-05-23 20:07:37 -04:00
Jan Edmund Lazo
b87a1db5ac vim-patch:8.1.1373: "[p" in Visual mode puts in wrong line
Problem:    "[p" in Visual mode puts in wrong line.
Solution:   Call nv_put() instead of duplicating the functionality.
            (closes vim/vim#4408)
0ab190c057
2019-05-23 19:50:52 -04:00
Jan Edmund Lazo
07a182c6b5 vim-patch:8.0.0647: syntax highlighting can make cause a freeze
Problem:    Syntax highlighting can make cause a freeze.
Solution:   Apply 'redrawtime' to syntax highlighting, per window.
06f1ed2f78
2019-04-23 00:03:47 -04:00
Jan Edmund Lazo
d8d4f05564 vim-patch:8.0.1411: reading invalid memory with CTRL-W :
Problem:    Reading invalid memory with CTRL-W :.
Solution:   Correct the command characters. (closes vim/vim#2469)
2efb323e87
2019-04-10 20:38:16 -04:00
Jan Edmund Lazo
de2e86a698 vim-patch:8.0.0725: a terminal window does not handle keyboard input
Problem:    A terminal window does not handle keyboard input.
Solution:   Add terminal_loop().  ":term bash -i" sort of works now.
938783d0ab
2019-04-10 20:34:39 -04:00
Justin M. Keyes
943bedfc86 event-loop: do not set CA_COMMAND_BUSY #9853
CA_COMMAND_BUSY in nv_event() was carried over from Vim nv_cursorhold()
(ref: e5165bae11). It prevents :startinsert from working during a RPC
call, so remove it.

Helped-by: glacambre <me@r4>
closes #7254
2019-04-08 02:33:00 +02:00
Marco Hinz
357f95a77e cursormoved: make global last_cursormoved window-local
Fixes https://github.com/neovim/neovim/issues/9755
2019-03-29 10:58:53 +01:00
Justin M. Keyes
4352d41db0 Merge #9662 'vim-patch:8.0.{0643-0646}' 2019-03-08 13:21:11 +01:00
Jan Edmund Lazo
e3d9945f7f vim-patch:8.1.0826: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_VIRTUALEDIT.  Adds about 10Kbyte to the code.
29ddebef40
2019-03-08 03:12:57 -05:00
Billy Su
241b905b13 vim-patch:8.0.0643: when a pattern search is slow Vim becomes unusable
Problem:    When 'hlsearch' is set and matching with the last search pattern
            is very slow, Vim becomes unusable.  Cannot quit search by
            pressing CTRL-C.
Solution:   When the search times out set a flag and don't try again.  Check
            for timeout and CTRL-C in NFA loop that adds states.
fbd0b0af68
2019-03-07 23:27:19 +08:00
Björn Linse
9a1675b065 floats: implement floating windows
Co-Author: Dongdong Zhou <dzhou121@gmail.com>
2019-03-02 16:29:50 +01:00
Justin M. Keyes
33ce70c883 vim-patch:8.1.0932: remove Farsi support (#9622)
Problem:    Farsi support is outdated and unused.
Solution:   Delete the Farsi support.
14184a3133
2019-02-17 10:54:00 +01:00
Björn Linse
51fc54325c ui: implement ext_messages
Co-Author: Dongdong Zhou <dzhou121@gmail.com>
2019-02-10 13:36:46 +01:00
Björn Linse
2ab70cb55c window/ui: reorganize size variables, fix terminal window size with multigrid.
wp->w_height_inner now contains the "inner" size, regardless if the
window has been drawn yet or not. It should be used instead of
wp->w_grid.Rows, for stuff that is not directly related to accessing
the allocated grid memory, such like cursor movement and terminal size
2019-01-27 12:07:06 +01:00
Björn Linse
a2be9c7218 ui: multigrid mouse support 2019-01-20 10:32:05 +01:00
Justin M. Keyes
ed171f7be2 PVS/V1028: cast operands, not the result 2019-01-18 00:09:50 +01:00
Justin M. Keyes
ddd4ed3ce5 clang/"Dead assignment" 2019-01-13 17:53:26 +01:00
Björn Linse
23c71d5182 display: unify cursorline and concealcursor redraw logic
There is various places where 'conceallevel' and 'concealcursor'
necessitates additional redraws. This tries to separate the different
cases and handle each accordingly:

  - Share code with 'cursorline' for the common case: vertical move of
    cursor within the same window (concealcursor not active)
  - Improve the logic for managing 'concealcursor' and switching modes:
    test for the case where the new mode behaves differently from the
    last one.
  - Clarify the special case for horizontal movement within a line when
    'concealcursor' is active, now there is an if-statement only for this
     and not hidden in larger check mostly for the first point.
  - Keep the special case for moving between windows as is.
2019-01-13 12:08:11 +01:00
Björn Linse
ca58c3a4f5 normal/edit: add missing "need_cursor_line_redraw = false"
vim-patch:8.1.0726: redrawing specifically for conceal feature
2019-01-12 09:22:21 +01:00
Björn Linse
889f73e861 screen: make update_screen() the only entry point for redrawing
update_single_line() was only used for 'concealcursor'. But 'cursorline'
has very similiar characteristics (redraw both lines on move cursor
between lines) and works without its own special entry point to the
redraw subsystem.

Later on 'concealcursor' and 'cursorline' could share more logic, but for
now make the former use standard redrawWinline(). Make sure it is called
before update_screen(), so that it is immediately visible.

Get rid of update_prepare() and update_finish(), and all issues from
them and their callsites not being in sync with changes to
update_screen()
2019-01-11 10:55:43 +01:00
Pedro L. Ramos
57c7e1d4a0 vim-patch:8.1.0648: custom operators can't act upon forced motion
Problem:    Custom operators can't act upon a forced motion. (Christian
            Wellenbrock)
Solution:   Add the forced motion to the mode() result. (Christian Brabandt,
            closes vim/vim#3490)
5976f8ff00

closes #8667
closes #9476

Christian Wellenbrock:

> For (most) built in text objects it's possible to force operation on
> them to be linewise, for example by using `dVab` (`:h o_V`,
> `motion_force`). When using custom text objects (defined as mappings
> by plugins for example), this doesn't currently work.
>
> Example:
>
>     onoremap x viw
>
> Open a file with a few lines each containing some words. With the
> cursor on any word, try:
>
> 1. `dw` (builtin) deletes some characters
> 2. `dVw` (builtin) deletes linewise
> 3. `dx` (from mapping) deletes some characters
> 4. `dVx` (from mapping) deletes some characters, but should delete
>    linewise

ref: https://github.com/wellle/targets.vim/issues/214
ref: https://gitter.im/neovim/neovim?at=5b379ff7f1664406610e7483
2019-01-10 08:50:07 +01:00
Justin M. Keyes
2a325892c2 PVS/V1026: normal.c: signed integer overflow
> V1026 The 'curwin->w_curswant' variable is incremented in the loop.
> Undefined behavior will occur in case of signed integer overflow.
2019-01-05 00:52:31 +01:00
Justin M. Keyes
37a499148f Visual: highlight char-at-cursor
Decide whether to highlight the visual-selected character under the
cursor, depending on 'guicursor' style:

- Highlight if cursor is blinking or non-block (vertical, horiz).
- Do NOT highlight if cursor is non-blinking block.

Traditionally Vim's visual selection does "reverse mode", which perhaps
conflicts with the non-blinking block cursor. But 'guicursor' defaults
to a vertical bar for selection=exclusive, and this confuses users who
expect to see the text highlighted.

closes #8983
2019-01-04 01:28:44 +01:00
Justin M. Keyes
e2d71d11de remove check_visual_highlight()
This check is meaningless, we assume the terminal supports reverse-mode.
2019-01-04 01:24:49 +01:00
Utkarsh Maheshwari
ba6f9f60ad multigrid: Fix lint errors 2018-12-31 12:44:22 +01:00
Utkarsh Maheshwari
01555de2da multigrid: Allow UIs to set grid size different from window size 2018-12-31 12:44:21 +01:00
Utkarsh Maheshwari
f102f50ebe multigrid: Change screen_* functions to grid_* functions 2018-12-31 12:44:21 +01:00
Anatolii Sakhnik
7b6c92eac1 vim-patch:8.1.0394: diffs are not always updated correctly
Problem:    Diffs are not always updated correctly.
Solution:   When using internal diff update for any changes properly.

e3521d9cbb
2018-12-09 19:45:56 +02:00
Justin M. Keyes
c3d24368a1 shortmess+=F: Hide :bnext, :bprev fileinfo messages 2018-09-23 15:58:01 +02:00
Jan Edmund Lazo
300a7a4cf4 replace fallthrough comment with macro
Follow-up of vim-patch:8.0.1215
2018-09-21 00:05:06 -04:00
Jan Edmund Lazo
6a329b0548 vim-patch:8.0.1215: newer gcc warns for implicit fallthrough
Problem:    Newer gcc warns for implicit fallthrough.
Solution:   Consistently use a FALLTHROUGH comment. (Christian Brabandt)
2f40d129bf
2018-09-20 06:59:04 -04:00
Justin M. Keyes
dadcfe22ca Merge #8998 from janlazo/vim-8.0.1275 2018-09-14 19:21:09 +02:00
Jan Edmund Lazo
c03e8307d2 vim-patch:8.0.1201: "yL" is affected by 'scrolloff' (#8997)
Problem:    "yL" is affected by 'scrolloff'. (Eli the Bearded)
Solution:   Don't use 'scrolloff' when an operator is pending.
44cc4cf72f
2018-09-14 19:16:30 +02:00
Jan Edmund Lazo
db90c0c9bf globals: KeyTyped is bool 2018-09-14 01:01:00 -04:00
Jan Edmund Lazo
e15c34fbc2 lint 2018-09-11 23:04:54 -04:00
Jan Edmund Lazo
38c52c63ac vim-patch:8.0.1809: various typos
Problem:    Various typos.
Solution:   Correct the mistakes, change "cursur" to "cursor". (closes vim/vim#2887)
b946482190
2018-09-11 23:02:22 -04:00
Jan Edmund Lazo
d4cc4e0871 vim-patch:8.0.0998: strange error when using K while only spaces are selected
Problem:    Strange error when using K while only spaces are selected.
            (Christian J. Robinson)
Solution:   Check for blank argument.
a4f99f5a8b
2018-09-04 21:16:34 -04:00
Justin M. Keyes
a2403a0ed9 Merge #8863 'refactor: Remove mb_head_off() ' 2018-08-28 23:37:30 +02:00
Jan Edmund Lazo
0223c81457 lint 2018-08-17 22:07:55 -04:00
Jan Edmund Lazo
7482aef113 normal: don't check has_mbyte
has_mbyte is always true for nvim.
2018-08-17 22:07:55 -04:00