Commit Graph

635 Commits

Author SHA1 Message Date
zeertzjq
ac66f5af06 fix!: make :undo! notify buffer update callbacks (#20344)
When :undo! was introduced to Nvim the implementation of 'inccommand'
preview callback hasn't been fully decided yet, so not notifying buffer
update callbacks made sense for 'inccommand' preview callback in case it
needs to undo the changes itself.
Now it turns out that the undo-and-forget is done automatically for
'inccommand', so it doesn't make sense for :undo! to avoid notifying
buffer update callbacks anymore.
2022-09-26 07:15:07 +08:00
zeertzjq
a6c9764eda fix(inccommand): deal with unsynced undo (#20041) 2022-09-26 07:00:37 +08:00
dundargoc
91e912f8d4 refactor: move klib out of src/nvim/ #20341
It's confusing to mix vendored dependencies with neovim source code. A
clean separation is simpler to keep track of and simpler to document.
2022-09-25 06:26:37 -07:00
zeertzjq
7bd4c8e8ee fix(inccommand): avoid unnecessary redraw when not showing (#20244) 2022-09-19 12:37:25 +08:00
bfredl
708bd68651 feat(ui): use msg_grid based implementation for cmdheight=0 2022-09-15 12:13:43 +02:00
bfredl
8b0b0a5c32 Merge pull request #18705 from dundargoc/fix/require-missing-module-in-autocmd
fix: assertion failure when requiring missing module in autocmd
2022-09-14 10:55:25 +02:00
bfredl
f6232e160b Merge pull request #20077 from dundargoc/refactor/char_u/11
refactor: replace char_u with char 11: remove `STRLEN` part 1
2022-09-12 21:50:31 +02:00
zeertzjq
5bc0964b97 vim-patch:9.0.0299: error messages for setcmdline() could be better (#20169)
Problem:    Error messages for setcmdline() could be better.
Solution:   Use more specific error messages. (Yegappan Lakshmanan,
            closes vim/vim#10995)
25f1e55562

Cherry-pick tv_check_for_opt_number_arg() from Vim.
2022-09-12 21:47:35 +08: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
684bc749ef refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-09-10 11:17:40 +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 Goc
da34833fdf fix: assertion failure when requiring missing module in autocmd
Closes https://github.com/neovim/neovim/issues/15348
2022-09-05 19:11:25 +02:00
Lewis Russell
1ffd527c83 refactor: migrate comment style (#20012)
Done automatically using the following perl command:

  perl -pi -0777pe 's#\n\K */\*\n(.+?)\s*\*/\n#join("\n", map { $_ =~ s:^\s*\K \*://:; $_ } split("\n", $1)) . "\n"#sge' src/nvim/**/*.c

Co-authored-by: zeertzjq <zeertzjq@outlook.com>

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-09-02 17:39:49 +01:00
Dundar Göc
49e893f296 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-09-01 10:47:42 +02:00
Dundar Göc
bd51ac2a34 refactor: replace char_u with char
Work on https://github.com/neovim/neovim/issues/459
2022-08-31 21:17:10 +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
dundargoc
2828aae7b4 refactor: replace char_u with char 4 (#19987)
* refactor: replace char_u with char

Work on https://github.com/neovim/neovim/issues/459
2022-08-30 14:52:09 +02:00
zeertzjq
e6e9879cb3 vim-patch:9.0.0320: command line type of CmdlineChange differs from getcmdtype()
Problem:    Command line type of CmdlineChange differs from getcmdtype().
Solution:   Use the same type. (closes vim/vim#11005)
54acb90d9e
2022-08-30 06:33:09 +08:00
zeertzjq
2c83d7b2dd refactor: move cmdline functions to ex_getln.c 2022-08-30 06:32:08 +08: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
zeertzjq
92bc11a891 vim-patch:9.0.0316: screen flickers when 'cmdheight' is zero (#19991)
Problem:    Screen flickers when 'cmdheight' is zero.
Solution:   Redraw over existing text instead of clearing.
f73e5ba56f
2022-08-29 20:22:15 +08:00
bfredl
5fe6bde296 Merge pull request #19961 from dundargoc/refactor/char_u/2
refactor: replace char_u with char 2: electric chaaralo
2022-08-29 12:50:22 +02:00
Shougo
253f0ffd8d vim-patch:9.0.0285: it is not easy to change the command line from a plugin (#19979)
vim-patch:9.0.0285: it is not easy to change the command line from a plugin

Problem:    It is not easy to change the command line from a plugin.
Solution:   Add setcmdline(). (Shougo Matsushita, closes vim/vim#10869)
07ea5f1509
2022-08-29 13:11:52 +08: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
zeertzjq
cc2c8be481 vim-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.
5416232707

N/A patches for version.c:

vim-patch:9.0.0281: build failure without the +eval feature

Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef.
58dcbf1c65
2022-08-27 07:03:07 +08: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
zeertzjq
6547f4397f vim-patch:8.1.2331: the option.c file is still very big (#19954)
Problem:    The option.c file is still very big.
Solution:   Move a few functions to where they fit better. (Yegappan
            Lakshmanan, closes vim/vim#4895)
7bae0b1bc8

vim-patch:9.0.0271: using INIT() in non-header files

Problem:    Using INIT() in non-header files.
Solution:   Remove INIT(). (closes vim/vim#10981)
9b7d2a9596
2022-08-26 18:49:29 +08:00
Lewis Russell
2498e9feb0 refactor: change FALSE/TRUE to false/true
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-08-26 09:36:55 +01:00
zeertzjq
4ecea0e001 vim-patch:8.2.0911: crash when opening a buffer for the cmdline window fails
Problem:    Crash when opening a buffer for the cmdline window fails. (Chris
            Barber)
Solution:   Check do_ecmd() succeeds.  Reset got_int if "q" was used at the
            more prompt. (closes vim/vim#6211)
9b7cce28d5

Make code match latest Vim instead.
2022-08-25 21:38:11 +08:00
Lewis Russell
93f24403f8 refactor: pre-incr to post-incr 2022-08-25 13:10:41 +01:00
bfredl
f1ea126a6e Merge pull request #19906 from bfredl/bigstage
perf(api): allow to use an arena for return values
2022-08-24 15:22:30 +02:00
bfredl
bcf5ee328e refactor(arena): use a shared block freelist
This is both simpler in client code and more effective (always reuse
block hottest in cache)
2022-08-24 14:22:26 +02:00
zeertzjq
9a100ee169 fix(cmdline): do not trigger completion at wrong time (#19920)
Cherry-picked from Vim patches 8.2.4339, 9.0.0238.
2022-08-24 10:28:32 +08: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
e3eb6967bc vim-patch:8.2.4325: 'wildmenu' only shows few matches (#19876)
Problem:    'wildmenu' only shows few matches.
Solution:   Add the "pum" option: use a popup menu to show the matches.
            (Yegappan Lakshmanan et al., closes vim/vim#9707)
3908ef5017

Omit p_wmnu check in cmdline_pum_active() as it can cause problems.
Omit vim_strchr() flags as that isn't really better than bitmasks.
Omit key translations and document it in vim_diff.txt.
2022-08-21 21:31:25 +08:00
zeertzjq
506a3ec913 refactor: make wildmenu code closer to Vim (#19870)
This is a small refactor that makes `compl_match_array` static and
doesn't change any behavior.
2022-08-21 11:06:07 +08:00
zeertzjq
61ff37952a vim-patch:8.2.1587: loop for handling keys for the command line is too long (#19868)
Problem:    Loop for handling keys for the command line is too long.
Solution:   Move wild menu handling to separate functions. (Yegappan
            Lakshmanan, closes vim/vim#6856)
eadee486c7
2022-08-21 09:18:47 +08:00
zeertzjq
0d0a336c53 vim-patch:8.1.1886: command line expansion code is spread out (#19861)
Problem:    Command line expansion code is spread out.
Solution:   Move the code to cmdexpand.c. (Yegappan Lakshmanan, closes vim/vim#4831)
66b51420e0
2022-08-21 06:33:24 +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
bfredl
6adc2ae7e0 refactor: move statusline code from buffer.c and [draw]screen.c to new file
problem: code for drawing statusline is arbitrarily spreadout between drawscreen.c, screen.c and buffer.c
solution: move it to a new file statusline.c

- rename archaic internal name "status match" to public name "wildmenu"
- showruler() does not show the ruler. it show anything which displays
  info about the cursor. Rename it accordingy.
2022-08-19 22:48:03 +02:00
bfredl
3c545b9c62 Merge pull request #19360 from famiu/feat/multibuffer-inccommand
feat: multibuffer preview support for inccommand
2022-08-19 17:21:18 +02: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
Famiu Haque
c2f7a2a18d feat: multibuffer preview support for inccommand
Allows preview callbacks to modify multiple buffers in order to show the
preview. Previously, if multiple buffers were modified, only the current
buffer would have its state restored. After this change, all buffers
have their state restored after preview.

Closes #19103.
2022-08-19 09:27:52 +06:00
zeertzjq
fbcce2b2ca vim-patch:8.1.2082: rename popupmnu.* to popupmenu.* (#19829)
vim-patch:8.1.2082: some files have a weird name to fit in 8.3 characters

Problem:    Some files have a weird name to fit in 8.3 characters.
Solution:   Use a nicer names.
30e8e73506
2022-08-18 17:06:39 +08:00
zeertzjq
f7cfca49d6 refactor: remove some unused includes (#19820)
Replace grid.h in screen.h and screen.h in buffer.h with grid_defs.h
2022-08-17 22:18:34 +08:00
zeertzjq
5d8278591a vim-patch:8.2.1262: src/ex_cmds.c file is too big (#19811)
Problem:    src/ex_cmds.c file is too big.
Solution:   Move help related code to src/help.c. (Yegappan Lakshmanan,
            closes vim/vim#6506)
f868ba8903
2022-08-17 17:29:06 +08:00
Lewis Russell
542fa8a9cc refactor: change pre-decrement/increment to post (#19799)
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
2022-08-16 12:26:08 +01:00
zeertzjq
5e98a41872 vim-patch:8.1.1869: code for the argument list is spread out (#19791)
Problem:    Code for the argument list is spread out.
Solution:   Put argument list code in arglist.c. (Yegappan Lakshmanan,
            closes vim/vim#4819)
4ad62155a1
2022-08-16 14:16:03 +08:00