Commit Graph

334 Commits

Author SHA1 Message Date
chentau
e32eaf6538 extmarks: remove curbuf->deleted_bytes2 from op_delete 2021-04-16 23:42:53 -07:00
Jan Edmund Lazo
5bf94259c1 clang/'Logic error': set vcol in do_put() 2021-04-02 08:23:40 -04:00
Jan Edmund Lazo
af2f0ffdf4 vim-patch:8.1.2380: using old C style comments
Problem:    Using old C style comments.
Solution:   Use // comments where appropriate.
306139005c
2021-03-29 19:34:45 -04:00
VVKot
7fc58ec99a vim-patch:8.1.0542: shiftwidth() does not take 'vartabstop' into account
Problem:    shiftwidth() does not take 'vartabstop' into account.
Solution:   Use the cursor position or a position explicitly passed.
            Also make >> and << work better with 'vartabstop'. (Christian
            Brabandt)
f951416a83
2021-03-28 08:38:21 +01:00
VVKot
6752ac4968 vim-patch:8.1.0105: all tab stops are the same
Problem:    All tab stops are the same.
Solution:   Add the variable tabstop feature. (Christian Brabandt,
            closes vim/vim#2711)
04958cbaf2
2021-03-28 08:37:01 +01:00
chentau
7fbabbaa57 Extmarks: correct buffer events on blockwise paste 2021-03-23 14:06:57 -07:00
Jan Edmund Lazo
ab5083b5fc pos: define MAXCOL to INT_MAX
Partial port of patch v8.1.0953.
Remove useless casts on MAXCOL.
2021-02-23 23:00:06 -05:00
Thomas Vigouroux
3094bb4e38 fix(buf_updates): send updates when putting past last line
Fixes #13710
2021-02-08 19:08:42 +01:00
James McCoy
27a7a4d384 Use abort() instead of assert(false) for things that should never happen
assert() is compiled out for release builds, but we don't want to
continue running in these impossible situations.

This also resolves the "implicit fallthrough" warnings for the asserts
in switch cases.
2021-01-31 11:28:52 -05:00
Jan Edmund Lazo
8cf4a02bf2 vim-patch:8.1.2212: cannot see the selection type in :reg output
Problem:    Cannot see the selection type in :reg output. (Ayberk Aydın)
Solution:   Add c/l/b. (Christian Brabandt, closes vim/vim#5110, closes vim/vim#4546)
3691f1ee72

Patch v8.1.0999 is not ported so ":registers" does not omit register 1.
2020-12-25 10:17:00 -05:00
Jan Edmund Lazo
b602fe74b0 vim-patch:8.2.2189: cannot repeat a command that uses the small delete register
Problem:    Cannot repeat a command that uses the small delete register.
Solution:   Store the register name instead of the contents. (Christian
            Brabandt, closes vim/vim#7527)
032a2d050b

N/A patches for version.c:

vim-patch:8.2.2192: Codecov on github actions fails

Problem:    Codecov on github actions fails.
Solution:   Revert to codecov script. (Ozaki Kiichi, closes vim/vim#7529)
e5492609b3
2020-12-22 18:15:01 -05:00
Jan Edmund Lazo
06869a6940 vim-patch:8.2.2166: auto format doesn't work when deleting text
Problem:    Auto format doesn't work when deleting text.
Solution:   Make "x" trigger auto format. (closes vim/vim#7504)
d0a1dee3f1
2020-12-20 17:03:36 -05:00
Matthieu Coudron
4f1fc0f6d5 refactor: pass window to was_set_insecurely
working on get_foldtext and wanted to get rid of the curwin backup/restore.
Turns out it's not possible else f_foldtext is run on the same window.
Kept the cleanup anyway.
2020-11-23 21:06:56 +01:00
Björn Linse
c146eddc8b api: add API for themes
co-author: hlpr98 <hlpr98@gmail.com> (dict2hlattrs function)

orange is sus??

NOVEMBER DAWN

erase the lie that is redraw_later()
2020-11-01 19:14:56 +01:00
Jan Edmund Lazo
2894649c2e vim-patch:8.2.0901: formatting CJK text isn't optimal
Problem:    Formatting CJK text isn't optimal.
Solution:   Properly break CJK lines. (closes vim/vim#3875)
e52702f003
2020-10-23 08:57:16 -04:00
KillTheMule
02dcc3c11a Fix byte updates for blockwise paste at buffer end 2020-09-30 21:28:21 +02:00
KillTheMule
ba515622fb Fix buffer_updates on blockwise paste
Fixes #12718.
2020-09-30 20:10:05 +02:00
Matthieu Coudron
12fdb114d1 folds: pass column on fold creation
useful if we want to have inline folds later and/or let users create
folds that remember their start/end columns.
2020-09-28 23:53:10 +02:00
Björn Linse
2f2c73265f lint: is lint 2020-09-19 10:14:13 +02:00
Björn Linse
b7fc7ac6a1 buffer updates: fix issues with "change" operator 2020-09-19 10:01:00 +02:00
Thomas Vigouroux
179f0bca18 buf_updates: fix wrong updates on linewise change 2020-09-18 17:54:49 +02:00
Björn Linse
bc86f76c0a api/buffer: add "on_bytes" callback to nvim_buf_attach
This implements byte-resolution updates of buffer changes.
Note: there is no promise that the buffer state is valid inside
the callback!
2020-09-09 21:22:21 +02:00
Björn Linse
f42aa95fbc extmark: separate extmark_splice_cols for column-only change
as the byte logic will be the same for all of these
2020-09-09 21:22:21 +02:00
Jacques Germishuys
a166c2aadb eval_call_provider(): free unused return value #12819
Caller can pass discard=true to free the unwanted return value.
2020-09-01 20:22:42 -07:00
Jan Edmund Lazo
246c510b60 vim-patch:8.2.1511: putting a string in Visual block mode ignores multi-byte
Problem:    Putting a string in Visual block mode ignores multi-byte
            characters.
Solution:   Adjust the column for Visual block mode. (closes vim/vim#6767)
cd94277f72
2020-08-22 17:07:21 -04:00
Jan Edmund Lazo
be9de61012 vim-patch:8.2.1170: cursor off by one with block paste while 'virtualedit' "all"
Problem:    Cursor off by one with block paste while 'virtualedit' is "all".
Solution:   Adjust condition. (Hugo Gualandi, closes vim/vim#6430)
ef85a9b2d9

N/A patches for version.c:

vim-patch:8.2.1114: terminal test sometimes times out

Problem:    Terminal test sometimes times out.
Solution:   Split the test in two parts.
1112c0febb

vim-patch:8.2.1171: possible crash when out of memory

Problem:    Possible crash when out of memory.
Solution:   Check for NULL pointer. (Dominique Pellé, closes vim/vim#6432)
58bb61cf5e

vim-patch:8.2.1172: error messages when doing "make clean" in doc or tee

Problem:    Error messages when doing "make clean" in the runtime/doc or
            src/tee directories.
Solution:   Use "rm -f".
08fc48492a

vim-patch:8.2.1173: tee doesn't build on some systems

Problem:    Tee doesn't build on some systems.
Solution:   Include header files. (Dominique Pelle, closes vim/vim#6431)
4004315292

vim-patch:8.2.1177: terminal2 test sometimes hangs in the GUI

Problem:    Terminal2 test sometimes hangs in the GUI.
Solution:   Move some tests to other files to further locate the problem.
            Set the GUI to a fixed screen size.
18aa13d13b

vim-patch:8.2.1179: Test_termwinscroll() sometimes hangs in the GUI

Problem:    Test_termwinscroll() sometimes hangs in the GUI.
Solution:   Skip the test in the GUI.
f65927fc8d

vim-patch:8.2.1180: build failure in small version

Problem:    Build failure in small version.
Solution:   Add #ifdef.
1e624c912d

vim-patch:8.2.1181: json code not fully tested

Problem:    Json code not fully tested.
Solution:   Add more test coverage. (Dominique Pellé, closes vim/vim#6433)
21e5bdd271
2020-07-19 11:38:35 -04:00
Jan Edmund Lazo
833a5d16a2 vim-patch:8.2.0963: number increment/decrement does not work with 'virtualedit'
Problem:    Number increment/decrement does not work with 'virtualedit'.
Solution:   Handle coladd changing. (Christian Brabandt, closes vim/vim#6240,
            closes vim/vim#923)
6c6be9e88d
2020-06-18 18:01:43 -04:00
Billy Su
1805fb469a vim-patch:8.2.0111: VAR_SPECIAL is also used for booleans
Problem:    VAR_SPECIAL is also used for booleans.
Solution:   Add VAR_BOOL for better type checking.
9b4a15d5db
2020-06-06 23:24:58 +08:00
Christian Clason
8a1276005a Add v:event.visual during TextYankPost (#12382)
* propagate visual selection to textyankpost event

* adapt tests

* add docs

* also adapt oldtest
2020-06-03 10:51:25 -04:00
Jan Edmund Lazo
63fc0e1d1c vim-patch:8.2.0389: delayed redraw when shifting text from Insert mode
Problem:    Delayed redraw when shifting text from Insert mode.
Solution:   Use msg_attr_keep() instead of msg(). (closes vim/vim#5782)
e4fc746d13
2020-04-13 12:00:30 -04:00
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