Commit Graph

304 Commits

Author SHA1 Message Date
Jan Edmund Lazo
4de2957a99 vim-patch:8.0.1587: inserting from the clipboard doesn't work literally
Problem:    inserting from the clipboard doesn't work literally
Solution:   When pasting from the * or + register always assume literally.
3324d0a864
2020-03-01 04:01:32 -05:00
Jan Edmund Lazo
607240a8ba pvs/v1048: variable was assigned same value 2020-03-01 03:57:58 -05:00
erw7
4813ad48cd vim-patch:8.1.0027: difficult to make a plugin that feeds a line to a job
Problem:    Difficult to make a plugin that feeds a line to a job.
Solution:   Add the nitial code for the "prompt" buftype.
f273245f64
2020-02-12 15:16:32 +09:00
Axel Forsman
2538e61513 Fix shift change callbacks reading bad cursor (#11782)
Sloppy code inherited from Vim caused user scripts to be able
to observe the cursor line in an invalid intermediary state,
due to Neovim change callbacks being unbuffered unlike Vim listeners.

Manifested in Vimscript executed from the callback possibly erroring
when `:call`:ing any function,
due to the implicit range `curwin->w_cursor.lnum,curwin->w_cursor.lnum`
failing validation.

Fixed by deferring the call to `changed_lines()` until after
`curwin->w_cursor.lnum` gets its correct value.
2020-01-30 07:34:34 +01:00
Jan Edmund Lazo
94ad6652f1 Remove enc_utf8,has_mbyte dead code 2020-01-25 18:09:17 -05:00
Jan Edmund Lazo
e22d0cf12c vim-patch:8.2.0147: block Visual mode operators not correct when 'linebreak' set
Problem:    Block Visual mode operators not correct when 'linebreak' set.
Solution:   Set w_p_lbr to lbr_saved more often. (Ken Takata, closes vim/vim#5524)
03c3bd9fd0
2020-01-24 02:02:40 -05:00
Björn Linse
48a869dc6d shed biking: it's always extmarks, never marks extended 2020-01-20 19:36:35 +01:00
Jan Edmund Lazo
1042338c00 clang/'Logic error': zero-init struct 2020-01-17 19:06:50 -05:00
Björn Linse
ca1a00edd6 extmarks/bufhl: reimplement using new marktree data structure
Add new "splice" interface for tracking buffer changes at the byte
level. This will later be reused for byte-resolution buffer updates.
(Implementation has been started, but using undocumented "_on_bytes"
option now as interface hasn't been finalized).

Use this interface to improve many edge cases of extmark adjustment.
Changed tests indicate previously incorrect behavior. Adding tests for
more edge cases will be follow-up work (overlaps on_bytes tests)

Don't consider creation/deletion of marks an undoable event by itself.
This behavior was never documented, and imposes  complexity for little gain.

Add nvim__buf_add_decoration temporary API for direct access to the new
implementation. This should be refactored into a proper API for
decorations, probably involving a huge dict.

fixes #11598
2020-01-16 12:36:10 +01:00
Jan Edmund Lazo
eeabd3a8c6 vim-patch:8.2.0063: wrong size argument to vim_snprintf()
Problem:    Wrong size argument to vim_snprintf(). (Dominique Pelle)
Solution:   Reduce the size by the length. (related to vim/vim#5410)
08b28b7ad5
2019-12-30 17:02:15 -05:00
Jan Edmund Lazo
35c3985da6 clang/'Dead store': remove dead code 2019-12-26 00:29:13 -05:00
Jan Edmund Lazo
04ebfeb881 vim-patch:8.2.0018: :join does not add white space where it should
Problem:    :join does not add white space where it should. (Zdenek Dohnal)
Solution:   Handle joining multiple lines propely.
91b65e4944
2019-12-18 05:38:59 -05:00
Justin M. Keyes
fd5710ae9a doc + extmarks tweaks #11421
- nvim_buf_get_extmarks: rename "amount" => "limit"
- rename `set_extmark_index_from_obj`
2019-11-25 01:08:02 -08:00
Björn Linse
2cc83c961c refactor: use inserted_bytes pattern from vim
This covers all "small" inserts and deletes in insert mode, as well
as a few more cases like small normal mode deletes

vim-patch:8.1.0678: text properties as not adjusted for inserted text
2019-11-23 16:46:47 +01:00
Jan Edmund Lazo
0cb6fc804d vim-patch:8.1.2293: join adds trailing space when second line is empty
Problem:    Join adds trailing space when second line is empty. (Brennan
            Vincent)
Solution:   Do not add a trailing space.
cc184cfb09
2019-11-13 19:25:39 -05:00
Björn Linse
18a8b702c0 extmark: review changes 2019-11-11 20:18:15 +01:00
timeyyy
a9065a5051 nsmarks: initial commit 2019-11-11 19:43:15 +01:00
Jan Edmund Lazo
63ab994fba vim-patch:8.1.2235: "C" with 'virtualedit' set does not include multi-byte char
Problem:    "C" with 'virtualedit' set does not include multi-byte char.
Solution:   Include the whole multi-byte char. (Nobuhiro Takasaki,
            closes vim/vim#5152)
77ccc00340
2019-11-01 22:29:48 -04:00
Daniel Hahler
913d01bb03 vim-patch:8.1.2096: too many #ifdefs #11229
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_COMMENTS.
8c96af9c05

Fixes https://github.com/vim/vim/issues/4972.
2019-10-17 00:44:10 -07:00
Jurica Bradaric
0586a4b512 vim-patch:8.1.1588: in :let-heredoc line continuation is recognized
Problem:    In :let-heredoc line continuation is recognized.
Solution:   Do not consume line continuation. (Ozaki Kiichi, closes vim/vim#4580)
e96a2498f9
2019-10-07 14:14:13 +02:00
Jan Edmund Lazo
09232958ff vim-patch:8.1.2120: some MB_ macros are more complicated than necessary
Problem:    Some MB_ macros are more complicated than necessary. (Dominique
            Pelle)
Solution:   Simplify the macros.  Expand inline.
1614a14901
2019-10-06 21:11:38 -04:00
Justin M. Keyes
3344cffe7b getdigits: introduce strict, def parameters
Problem:
During a refactor long ago, we changed the `getdigits_*` familiy of
functions to abort on overflow.  But this is often wrong, because many
of these codepaths are handling user input.

Solution:
Decide at each call-site whether to use "strict" mode.

fix #5555
2019-09-13 19:29:25 -07:00
Jan Edmund Lazo
427cf16e44 vim-patch:8.1.0719: too many #ifdefs [ci skip] #11016
Problem:    Too many #ifdefs.
Solution:   Always build with the +visualextra feature.
870ba5f6dc
2019-09-13 18:30:23 -07:00
Jan Edmund Lazo
4cee0e0731 vim-patch:8.1.2026: possibly using uninitialized memory #11013
Problem:    Possibly using uninitialized memory.
Solution:   Check if "dict" is NULL. (closes vim/vim#4925)
dbec74907e
2019-09-13 16:31:56 -07:00
Björn Linse
dff06a90e4 api: make nvim_put support "\022{NUM}" regtype as returned by getregtype() 2019-08-31 09:20:24 +02:00
Jan Edmund Lazo
1d59575450 vim-patch:8.0.0303: shift_delete_registers() #10868
Problem:    Bracketed paste does not work in Visual mode.
Solution:   Delete the text before pasting
a1891848d9
2019-08-28 11:37:18 +02:00
Björn Linse
4cc56905cb API: nvim_put #6819 2019-08-27 21:19:10 +02:00
Daniel Hahler
0e3b9ea74d includes 2019-08-07 14:21:23 +02:00
Jan Edmund Lazo
d6b31721bf vim-patch:8.1.1086: too many curly braces
Problem:    Too many curly braces.
Solution:   Remove curly braces where they are not needed. (Hirohito Higashi,
            closes vim/vim#3982)
abab0b0fdd

Neovim code style requires the opposite.
Add curly braces to minimize lint errors when applying Vim patches.
2019-07-28 23:44:36 -04:00
Justin M. Keyes
caa8c06bae vim-patch:8.1.1138: add CompleteChanged #10644
(This was originally a Neovim patch, but this commit merges some changes
from the Vim patch.)

d7f246c68c
2019-07-29 02:36:46 +02:00
Jit
7cc2b723d4 TextYankPost: spurious/too-early dispatch during delete #10392
Problem: delete-with-register dispatches TextYankPost before updating yank registers
Solution: Add flag to op_yank().

Fixes #10225
2019-07-29 00:50:11 +02:00
Justin M. Keyes
411a06c8b6 API: Context 2019-07-27 16:36:57 +02:00
Ihor Antonov
324dc0dbc0 PVS/V1019: "readability" warning #10566 2019-07-22 19:45:59 +02:00
Björn Linse
aa28e070e9 refactor: use int for Columns and Rows 2019-07-19 15:57:19 +02:00
Ihor Antonov
f31f2d0b22 PVS/V1028: cast operands, not the result #10505 2019-07-16 20:03:08 +02:00
Ihor Antonov
56bc0a8bed PVS/V108: cast operands, not the result #10501 2019-07-16 19:58:30 +02:00
Ihor Antonov
b9a2b3f014 PVS/V1028: cast operands, not the result #10503 2019-07-16 19:50:01 +02:00
Ihor Antonov
6316247da3 PVS/V1028: cast operands, not the result #10502 2019-07-16 11:23:58 +02:00
Ihor Antonov
046deeeaa1 PVS/V1028: cast operands, not the result #10507 2019-07-16 01:01:12 +02:00
erw7
78f36fcf8c PVS/V1028: cast operands, not the result #10508
fix #10508
2019-07-14 22:16:44 +02:00
Ihor Antonov
47d53d66bd PVS/V1028: cast operands, not the result #10508 2019-07-14 21:03:06 +02:00
Jan Edmund Lazo
ace7e4e11b vim-patch:8.1.1342: using freed memory when joining line with text property
Problem:    Using freed memory when joining line with text property.
Solution:   Use already computed length.
787880a86d
2019-06-25 00:23:00 -04:00
Jan Edmund Lazo
f99e314da0 ops: refactor swapchar() to return bool 2019-06-23 18:17:09 -04:00
Jan Edmund Lazo
3abffe7015 vim-patch:8.1.0125: virtual edit replace with multi-byte fails at end of line
Problem:    Virtual edit replace with multi-byte fails at end of line. (Lukas
            Werling)
Solution:   use ins_char() to add the character. (Christian Brabandt,
            closes vim/vim#3114)  Rename PCHAR() to PBYTE() to avoid mistakes like
            this.
630afe889a
2019-06-23 18:17:09 -04:00
Jan Edmund Lazo
2d002100b3 lint 2019-06-01 00:37:36 -04:00
Jan Edmund Lazo
a51f24fda3 vim-patch:8.1.1000: indenting is off
Problem:    Indenting is off.
Solution:   Make indenting consistent and update comments. (Ozaki Kiichi,
            closes vim/vim#4079)
fd731b0e31
2019-06-01 00:15:02 -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
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
0e7048ae05 lint 2019-04-30 05:13:06 -04:00
Justin M. Keyes
8aca932aa0 clipboard: setreg("*") with clipboard=unnamed #9954
Helped-by: Björn Linse <bjorn.linse@gmail.com>
fix #5646
2019-04-28 21:06:24 +02:00