Commit Graph

219 Commits

Author SHA1 Message Date
Jaehwang Jung
52669b5c69 fix(diff): filler lines for hunks bigger than linematch limit
Apply linematch filler computation only if the hunk is actually
linematched.

Fixes #24580

(cherry picked from commit ed1da3ac24)
2023-08-12 09:14:54 +00:00
Jaehwang Jung
2748202e0e fix(diff): trigger on_bytes only once after diffget/diffput
Problem: The fix from b50ee4a8dc may
adjust extmark twice, triggering on_bytes callback twice.

Solution: Don't let mark_adjust adjust extmark.
2023-03-11 18:22:00 +09:00
Jaehwang Jung
b50ee4a8dc fix(diff): adjust extmarks after diffput/diffget (#22440)
Problem: on_bytes is not triggered by diffput/diffget if the line count
does not change.
2023-02-27 22:09:12 +00:00
dundargoc
5f72ab77bf refactor: reduce scope of locals as per the style guide 3 (#22221)
refactor: reduce scope of locals as per the style guide
2023-02-12 18:48:49 +01:00
dundargoc
7224c889e0 build: enable MSVC level 3 warnings (#21934)
MSVC has 4 different warning levels: 1 (severe), 2 (significant), 3
(production quality) and 4 (informational). Enabling level 3 warnings
mostly revealed conversion problems, similar to GCC/clang -Wconversion
flag.
2023-02-11 10:25:24 +01:00
dundargoc
4c531714ff refactor: replace char_u with char 25 (#21838)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-01-19 22:25:56 +08:00
dundargoc
8a4285d563 refactor: replace char_u with char 24 (#21823)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-01-18 21:17:11 +08:00
dundargoc
0344bfad0f refactor: replace char_u with char 22 (#21786)
Work on https://github.com/neovim/neovim/issues/459
2023-01-17 21:17:40 +08:00
dundargoc
e89c39d6f0 refactor: replace char_u with char 21 (#21779)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-01-14 15:58:28 +08:00
dundargoc
1492094003 refactor: replace char_u with char 17 - remove STRLCPY (#21235)
refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2023-01-09 21:13:06 +08:00
zeertzjq
ae64772a88 fix(diff): avoid restoring invalid 'foldcolumn' value (#21650)
Use "0" for 'foldcolumn' when w_p_fdc_save is empty, like how
"manual" is used for 'foldmethod' when w_p_fdm_save is empty.
2023-01-05 07:12:02 +08:00
zeertzjq
738427d498 vim-patch:9.0.1098: code uses too much indent (#21540)
Problem:    Code uses too much indent.
Solution:   Use an early return. (Yegappan Lakshmanan, closes vim/vim#11747)

465de3a57b

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2022-12-26 21:54:31 +08:00
Jonathon
c95a0c9959 fix(diff): fix a crash in diff mode with linematch enabled (#21070)
Problem: With two files open side by side in diff mode and deleting all of the contents of one file, the w_topfill value, which indicates the number of filler lines at the top of the window is set to be a negative number, and it will result in the virtual_lines_passed variable also being negative, and this while loop will run when it shouldn't. While calculating where the cursor and topline should be with linematch enabled, this topfill value is used to put the cursor and top line where it should be in the other windows. If that topfill number is negative, this causes a segfault. 

Solution: Check for positive top fill.
2022-12-02 13:45:00 +01:00
zeertzjq
1145a9b248 feat(aucmd_win): allow crazy things with hidden buffers (#21250)
Problem:    Crash when doing crazy things with hidden buffers.
Solution:   Dynamically allocate the list of autocommand windows.
2022-12-02 20:39:24 +08:00
zeertzjq
bd2d0edcbf fix: clang warnings (#21247) 2022-12-01 09:05:25 +08:00
zeertzjq
3173d07564 vim-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.

e76062c078

N/A patches for version.c:

vim-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)

f86490ed4f

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-11-29 20:36:31 +08:00
dundargoc
3b96ccf7d3 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-11-28 14:53:35 +01:00
Dundar Göc
bd22585061 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-11-26 15:52:21 +01:00
Dundar Göc
40f3f75867 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-11-19 16:27:10 +01:00
dundargoc
66360675cf build: allow IWYU to fix includes for all .c files
Allow Include What You Use to remove unnecessary includes and only
include what is necessary. This helps with reducing compilation times
and makes it easier to visualise which dependencies are actually
required.

Work on https://github.com/neovim/neovim/issues/549, but doesn't close
it since this only works fully for .c files and not headers.
2022-11-15 10:30:03 +01:00
dundargoc
731cdde28e refactor: fix clang-tidy warnings
Enable and fix bugprone-misplaced-widening-cast warning.

Fix some modernize-macro-to-enum and readability-else-after-return
warnings, but don't enable them. While the warnings can be useful, they
are in general too noisy to enable.
2022-11-06 11:44:10 +01:00
Jonathon
04fbb1de44 Enable new diff option linematch (#14537)
Co-authored-by: Lewis Russell <me@lewisr.dev>
2022-11-04 09:07:22 +00:00
Lewis Russell
60427eb05f fix(diff.c): regression in diffgetput (#20843) 2022-10-28 13:22:10 +01:00
Lewis Russell
395a271253 refactor(diff.c): copy lines via memmove 2022-10-25 10:06:00 +01:00
Lewis Russell
49c2da432b refactor(diff.c): factor out diffblock deletion 2022-10-25 10:05:53 +01:00
Lewis Russell
bf60b9134b refactor(diff.c): internal does not need diffstyle 2022-10-24 14:34:19 +01:00
Lewis Russell
b2011bae3e refactor(diff.c): simplify diff_buf_idx() 2022-10-24 14:31:57 +01:00
Lewis Russell
b15f7007eb refactor(diff.c): factor out hunk processing 2022-10-24 14:31:56 +01:00
Lewis Russell
29f138d5ad refactor(diff.c): factor out hunk extraction 2022-10-24 13:57:26 +01:00
Lewis Russell
267494151b refactor(diff.c): allocate hunks directly in ga_array 2022-10-24 13:57:21 +01:00
Lewis Russell
a6e404b7d5 refactor(diff.c): remove char_u declarations 2022-10-24 13:54:31 +01:00
Lewis Russell
57fdfc1c90 refactor(diff.c): break up ex_diffgetput()
Problem: ex_diffgetput is too big
Solution: factor out main loop into function

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-10-23 12:41:00 +01:00
Lewis Russell
d70193c326 refactor(diff.c): reduce scope of variables (#20781)
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-10-23 00:57:51 +01:00
Dundar Göc
3ff46544c9 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-09-11 13:28:59 +02:00
Dundar Göc
c5322e752e refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-09-09 21:02:42 +02:00
Dundar Göc
73207cae61 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-09-06 16:44:37 +02:00
Dundar Göc
fb1edb2f57 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-08-31 13:47:18 +02:00
Dundar Göc
58f30a326f refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-08-29 15:48:56 +02:00
Dundar Göc
691f4715c0 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-08-27 17:59:43 +02:00
Dundar Göc
3952770360 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-08-26 22:24:28 +02:00
Dundar Goc
40855b0143 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-08-25 18:59:12 +02:00
zeertzjq
6cc6e11929 vim-patch:9.0.0206: redraw flags are not named specifically (#19913)
Problem:    Redraw flags are not named specifically.
Solution:   Prefix "UPD_" to the flags, for UPDate_screen().
a4d158b3c8
2022-08-23 22:00:19 +08:00
zeertzjq
2bed0d1d97 vim-patch:8.2.4753: error from setting an option is silently ignored (#19888)
Problem:    Error from setting an option is silently ignored.
Solution:   Handle option value errors better.  Fix uses of N_().
31e5c60a68
2022-08-22 13:56:50 +08:00
zeertzjq
ff5cfcdeab vim-patch:8.1.2045: the option.c file is too big (#19854)
Problem:    The option.c file is too big.
Solution:   Split off the code dealing with strings. (Yegappan Lakshmanan,
            closes vim/vim#4937)
dac1347b4d

Cherry-pick set_string_option_direct_in_win() from patch 8.1.1405.
Cherry-pick shift_line() comment change from patch 8.1.2096.
Move 'clipboard' default parsing to didset_string_options().
Reorder option flags to put Nvim-only flags at the end.
2022-08-20 17:26:44 +08:00
Lewis Russell
51063a90df vim-patch:8.1.2057: the screen.c file is much too big
Problem:    The screen.c file is much too big.
Solution:   Split it in three parts. (Yegappan Lakshmanan, closes vim/vim#4943)
7528d1f6b5

This is an approximation vim-patch 8.1.2057. Applying the patch directly
isn't feasible since our version of screen.c has diverged too much,
however we still introduce drawscreen.c and drawline.c:
- screen.c is now a much smaller file used for low level screen functions
- drawline.c contains everything needed for win_line()
- drawscreen.c contains everything needed for update_screen()

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-08-19 10:01:40 +01:00
zeertzjq
6f14c5d2dd refactor: remove some unused includes (#19747)
- Remove autocmd.h from fileio.h
- Remove normal.h from main.h
- Move bufinfo_T from undo_defs.h to undo.c
2022-08-13 08:59:11 +08:00
Dundar Goc
094cdf2d69 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-08-12 14:22:02 +02:00
zeertzjq
94c3176478 refactor: use CLEAR_FIELD and CLEAR_POINTER macros (#19709)
vim-patch:8.2.0559: clearing a struct is verbose

Problem:    Clearing a struct is verbose.
Solution:   Define and use CLEAR_FIELD() and CLEAR_POINTER().
a80faa8930
2022-08-11 15:44:55 +08:00
zeertzjq
c9ca90229b vim-patch:9.0.0124: code has more indent than needed
Problem:    Code has more indent than needed.
Solution:   Use continue and return statements. (closes vim/vim#10824)
101d57b34b
2022-08-01 06:18:52 +08:00
Dundar Goc
824a729628 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-07-31 00:52:59 +02:00