Commit Graph

4994 Commits

Author SHA1 Message Date
zeertzjq
f54806fd7f fix(ui): avoid ambiguity about chunk that clears part of line
Co-authored-by: bfredl <bjorn.linse@gmail.com>
2023-09-02 18:58:59 +08:00
zeertzjq
3c5339ba36 test(tui): add test for overriding argv[0] 2023-09-02 18:58:56 +08:00
bfredl
32de3f98ed fix(treesitter): fix another TSNode:tree() double free
Unfortunately the gc=false objects can refer to a dangling tree if the
gc=true tree was freed first. This reuses the same tree object as the
node itself is keeping alive via the uservalue of the node userdata.
(wrapped in a table due to lua 5.1 restrictions)
2023-08-29 17:35:20 +02:00
nwounkn
a3c963adfc fix(treesitter): fix TSNode:tree() double free (#24796)
Problem: `push_tree`, every time its called for the same TSTree with
`do_copy=false` argument, creates a new userdata for it. Each userdata,
when garbage collected, frees the same TSTree C object.

Solution: Add flag to userdata, which indicates, should C object,
which userdata points to, be freed, when userdata is garbage collected.
2023-08-29 10:51:44 +02:00
Christian Clason
f5e6f592b6 build(deps): bump tree-sitter-c to v0.20.5
also update highlight queries and test

fixup: tests
2023-08-28 11:03:42 +09:00
Lewis Russell
9f928902c7 fix(editorconfig): do not set 'endofline'
Problem:
  'endofline' can be used to detect if a file ends of <EOL>, however
  editorconfig can break this.

Solution:
  Set 'endofline' during BufWritePre

Fixes: #24869
(cherry picked from commit 84376afc72)
2023-08-27 20:13:39 +00:00
Luuk van Baal
13c368eca5 fix(statuscolumn): force full redraw when signcolumn is invalid
Fix #24655

(cherry picked from commit 36108bfa11)
2023-08-26 13:10:44 +00:00
Ibby
b353c27338 fix(extmarks): wrong display when changing text with virt_lines
(cherry picked from commit e3e74c363a)
2023-08-26 11:39:24 +00:00
zeertzjq
c083d7ac78 vim-patch:9.0.1759: Visual highlight not working with cursor at end of screen line
Problem:  Visual highlight not working with cursor at end of screen line
          and 'showbreak'.
Solution: Only update "vcol_prev" when drawing buffer text.

closes: vim/vim#12865

8fc6a1dae0
(cherry picked from commit 03e7d4fc85)
2023-08-20 23:18:57 +00:00
zeertzjq
2a9af09187 fix(ui_compositor): only reset skipstart at first column
Problem:    A double-width char in a floating window causes an extra
            space to be drawn to the left of its boundary.
Solution:   Only reset skipstart at the first column.

Fix #24775

(cherry picked from commit 6b283f6e01)
2023-08-18 04:08:38 +00:00
zeertzjq
931bcc8081 fix(keycodes): recognize <t_xx> as a key
Problem:    The result of keytrans() sometimes can't be translated back.
Solution:   Recognize <t_xx> as a key.
(cherry picked from commit 0284b15bd4)
2023-08-13 14:15:08 +00:00
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
Lewis Russell
ac2dff64a5 fix(treesitter): make sure injections don't return empty ranges (#24595)
When an injection has not set include children, make sure not to add
the injection if no ranges are determined.

This could happen when there is an injection with a child that has the
same range as itself. e.g. consider this Makefile snippet

```make
foo:
  $(VAR)
```

Line 2 has an injection for bash and a make variable reference. If
include-children isn't set (default), then there is no range on line 2
to inject since the variable reference needs to be excluded.

This caused the language tree to return an empty range, which the parser
now interprets to mean the full buffer. This caused makefiles to have
completely broken highlighting.
2023-08-10 18:08:54 +02:00
zeertzjq
06ec1a49d7 fix(inccommand): don't set an invalid 'undolevels' value
Problem:    Cannot break undo by setting 'undolevels' to itself in
            'inccommand' preview callback.
Solution:   Don't set an invalid 'undolevels' value.

Co-authored-by: Michael Henry <drmikehenry@drmikehenry.com>
(cherry picked from commit 7c5e7d831a)
2023-08-05 14:42:55 +00:00
Sean Dewar
df63474930
fix(lsp): do not assume client capability exists in watchfiles check (#24558)
Backports #24550.

Adjusts test to expect that didChangeWatchedFiles is *not* registered if
client `capabilities` is nil (as it's not enabled by default for v0.9).
2023-08-04 10:16:54 +01:00
zeertzjq
060886e16c fix(terminal): forward horizontal mouse scrolling 2023-08-04 10:34:55 +08:00
zeertzjq
90b1a3250a fix(terminal): include modifiers when forwarding mouse
(cherry picked from commit d7da156929)
2023-08-04 01:34:34 +00:00
zeertzjq
f33d49a7a7 fix(inccommand): don't save information of a buffer twice
Problem:    'inccommand' doesn't restore 'undolevels' properly for a
            buffer shown in multiple windows.
Solution:   Don't save information of a buffer twice.
2023-07-28 16:09:15 +08:00
zeertzjq
d0a6c1437d test: reduce flakiness
Avoid consecutive RPC requests involving :startinsert or :stopinsert,
because consecutive RPC requests may be processed together, before the
:startinsert or :stopinsert takes effect.

Also change some feed_command() to command() to make tests faster.
2023-07-28 15:57:57 +08:00
zeertzjq
9f6fc24bcb test: check that TextChangedT cannot delete terminal buffer 2023-07-28 15:57:57 +08:00
zeertzjq
c03d38c51d test: check real cursor position in Terminal mode 2023-07-28 15:57:57 +08:00
zeertzjq
1fdb41969f test(inccommand): add a test for #20248 2023-07-28 15:21:37 +08:00
Alexandre Teoi
1e905c52ca fix(inccommand): restrict cmdpreview undo calls
Problem:
The cmdpreview saved undo nodes on cmdpreview_prepare() from ex_getln.c may
become invalid (free) if the preview function makes undo operations, causing
heap-use-after-free errors.

Solution:
Save the buffer undo list on cmdpreview_prepare)_ and start a new empty one. On
cmdpreview_restore_state(), undo all the entries in the new undo list and
restore the original one. With this approach, the preview function will be
allowed to undo only its own changes.

Fix #20036
Fix #20248
2023-07-28 15:20:58 +08:00
Brandon Simmons
46301281f7 fix(folds): update folds in Insert mode with fdm=indent
Previously, when using foldmethod=indent, inserting an unindented line
would inadvertently open closed folds below it.
As a performance improvement, folds were only updated once, across all
lines, after Insert mode was exited.

Now, the performance improvement is no longer being used when
foldmethod=indent, so folds are updated multiple times during Insert
mode, but only across the lines that are changing, which preserves the
folds (and their open/close states) instead of recreating them.
2023-07-25 22:56:02 +08:00
zeertzjq
d6733abc69 fix(ui-ext): backport win_viewport fixes to release-0.9 2023-07-25 22:56:02 +08:00
zeertzjq
42a735e524 fix(startup): don't truncate when printing with -l 2023-07-25 22:56:02 +08:00
zeertzjq
ada9443999 fix(mouse): handle folded lines with virt_lines attached to line above 2023-07-25 22:56:02 +08:00
zeertzjq
69f11f6d26 fix(plines): folded lines with virt_lines attached to line above 2023-07-25 22:56:02 +08:00
zeertzjq
d1a7aaa7f2 test(core/startup_spec): use retry() instead of jobwait()
This should work on Windows.

(cherry picked from commit 9ade0702b6)
2023-07-25 12:33:21 +00:00
zeertzjq
11e90126ba fix(startup): make recovery mode work without --headless
(cherry picked from commit e483d95289)
2023-07-25 11:28:42 +00:00
zeertzjq
cba4362d85 test(core/startup_spec): add a test for #13720
(cherry picked from commit 3cd69055de)
2023-07-25 11:11:31 +00:00
zeertzjq
16e690d595 fix(mouse): drag vsep of window with 'statuscolumn'
Problem:    Cannot drag a vertical separator to the right of a window
            whose 'statuscolumn' is wider than itself.
Solution:   Never treat a click on a vertical separator as a click on
            'statuscolumn'.
(cherry picked from commit c0007e6300)
2023-07-24 10:17:14 +00:00
zeertzjq
48d5eaffcd fix(statuscolumn): don't update clicks if current width is 0
(cherry picked from commit f46241d8a8)
2023-07-24 07:18:44 +00:00
zeertzjq
e2d14926d7 fix(highlight): make CurSearch work properly with 'winhl'
(cherry picked from commit 56d7627e1a)
2023-07-23 13:37:43 +00:00
zeertzjq
8ac7491685 test: fix VimResume test flakiness
(cherry picked from commit 95c3f8be68)
2023-07-23 02:03:28 +00:00
zeertzjq
e8ff921ed3 fix(events): trigger VimResume on next UI request
(cherry picked from commit cdd076d6c1)
2023-07-22 23:17:02 +00:00
zeertzjq
cf4b89f16b fix(terminal): send Shift-Home Shift-End Ctrl-Home Ctrl-End
(cherry picked from commit fa898b6f92)
2023-07-22 00:01:01 +00:00
Mike
c0c6294123 fix(fs.lua): normalize slash truncation
Preserve last slash in windows' root drive directories

(cherry picked from commit 886996ff74)
2023-07-18 06:36:24 +00:00
zeertzjq
115fe762b4 fix(terminal): don't send unknown special keys to terminal
Special keys are negative integers, so sending them to terminal leads to
strange behavior.

(cherry picked from commit 6b76fd9109)
2023-07-17 13:43:14 +00:00
zeertzjq
344bcb5f30 feat(tui): support Super and Meta modifiers
(cherry picked from commit 881835000d)
2023-07-15 07:03:21 +00:00
zeertzjq
7253cb3905 fix(mouse): copy the line before syntax matching
(cherry picked from commit 32e726e626)
2023-07-12 00:50:53 +00:00
zeertzjq
84086283ac fix(completion): don't add backslash in runtime completion
Problem:    Bashslashes added as regexp in runtime completion may be
            treated as path separator with some 'isfname' value.
Solution:   Make curly braces work for runtime completion and use it.
(cherry picked from commit 895cb173d2)
2023-07-08 15:29:44 +00:00
zeertzjq
f36433f83a fix(column): fix wrong cursor with 'statuscolumn' and cpo+=n
(cherry picked from commit 38bceb6269)
2023-07-06 03:07:43 +00:00
zeertzjq
1234861183 fix(edit): fix K_EVENT interfering with 'digraph'
(cherry picked from commit b08549eb69)
2023-07-05 04:06:37 +00:00
zeertzjq
617c6014ea fix(api, lua): make blank lines in a message work properly
(cherry picked from commit e6bb22e691)
2023-07-03 23:19:26 +00:00
Mike
38af92ce39 fix: always set arg0 to lua scripts
Sets script's basename when no extra arguments are given

(cherry picked from commit bb9ee80a39)
2023-07-01 00:18:15 +00:00
zeertzjq
1f9c2cfa91 test(lua/runtime_spec): add test for ftplugin ordering
(cherry picked from commit 6cceef6d4c)
2023-06-30 10:22:24 +00:00
zeertzjq
072d0b796e fix(statusline): fill for double-width char after moving items
(cherry picked from commit 55fa460c0a)
2023-06-30 00:36:28 +00:00
zeertzjq
a830373860 fix(column): handle unprintable chars in 'statuscolumn'
(cherry picked from commit 4e206a6a41)
2023-06-29 03:38:15 +00:00
github-actions[bot]
c8bd1d131f
[Backport release-0.9] fix(api): nvim_cmd{cmd="win_getid"} parsed as :winsize (#24189)
fix(api): nvim_cmd{cmd="win_getid"} parsed as :winsize

Problem:
`:lua vim.cmd.win_getid(30,10)` is interpreted as `:win[size] 30 10`.
User intention was to call `vim.fn.win_getid(30,10)`.

Solution:
Check that the `cmd` actually matches the resolved command.

(cherry picked from commit 629f8d1e46)

Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2023-06-28 05:34:55 -07:00
zeertzjq
54294140d7 fix(charset): fix wrong display of 0xffff
(cherry picked from commit fe3493679d)
2023-06-26 03:53:14 +00:00
zeertzjq
74c8878e9f fix(cmdline): don't redraw 'tabline' in Ex mode
Redrawing of 'statusline' and 'winbar' are actually already inhibited by
RedawingDisabled in Ex mode.

In Vim there is a check for `msg_scrolled == 0` (which is false in Ex
mode) since Vim doesn't have msgsep. Add a `!exmode_active` check here
in Nvim instead.

(cherry picked from commit e056777a88)
2023-06-22 22:40:44 +00:00
github-actions[bot]
b9a513ae11
[Backport release-0.9] fix(fs): make normalize() work with '/' path (#24060)
fix(fs): make `normalize()` work with '/' path

Problem: Current implementation of "remove trailing /" doesn't
account for the case of literal '/' as path.
Solution: Remove trailing / only if it preceded by something else.

(cherry picked from commit 80ff66118a)

Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
2023-06-19 02:01:12 -07:00
zeertzjq
abed0acf56 fix(remote): restore previous --remote-expr output formatting
- Use tostring() as that's what print() uses internally.
- Do not append trailing new line.

(cherry picked from commit b6d89de60e)
2023-06-11 14:12:51 +00:00
zeertzjq
4dafd5341a fix(remote): make --remote-expr print to stdout
(cherry picked from commit 54a05558e6)
2023-06-11 07:30:08 +00:00
zeertzjq
135cdd5ac0 fix(helptags): make multibyte help tags work properly
(cherry picked from commit 9b6702c370)
2023-06-11 04:23:32 +00:00
zeertzjq
27c3e1d18f fix(events): don't expand non-file as file name
(cherry picked from commit dd24ea8195)
2023-06-07 02:17:40 +00:00
zeertzjq
7e7fc4885f fix(statusline): redraw when VIsual_mode changes
(cherry picked from commit 397d861566)
2023-06-06 11:25:03 +00:00
zeertzjq
79c8df7e97 fix(spell): splice extmarks on :spellrepall
(cherry picked from commit 22241639eb)
2023-06-06 02:32:51 +00:00
Gregory Anders
d7212c10e2 fix(editorconfig): check that buffer is valid
Fixes: https://github.com/neovim/neovim/issues/23921
(cherry picked from commit 1cf3184f95)
2023-06-05 16:53:33 +00:00
zeertzjq
06d0985722 fix(ui): don't send empty grid_line with redrawdebug=compositor
(cherry picked from commit 12f2e47f2a)
2023-06-04 02:49:20 +00:00
zeertzjq
0e39b334c0 vim-patch:9.0.1597: cursor ends up below the window after a put
Problem:    Cursor ends up below the window after a put.
Solution:   Mark w_crow and w_botline invalid when changing the cursor line.
            (closes vim/vim#12465)

8509014add

Co-authored-by: Bram Moolenaar <Bram@vim.org>
(cherry picked from commit 7a0726caee)
2023-06-02 00:49:10 +00:00
zeertzjq
022b5ba45d
test(ui/decorations_spec): add local variable assert_alive 2023-06-01 16:34:18 +08:00
zeertzjq
56c35faf8b fix(column): don't overflow sign column with extmark signs
(cherry picked from commit 24a6804528)
2023-06-01 08:20:53 +00:00
Luuk van Baal
126a757c55 fix(column): corrupted screen with minwid sign item in 'statuscolumn'
(cherry picked from commit 2016ff6f37)
2023-05-30 12:56:36 +00:00
zeertzjq
a2bfe4e524 fix(substitute): properly check if preview is needed
(cherry picked from commit c8004af17d)
2023-05-29 00:45:14 +00:00
zeertzjq
edf2a5aa25 fix(extmarks): don't show virt lines for end mark
(cherry picked from commit ffbf0cecb6)
2023-05-28 09:22:44 +00:00
zeertzjq
7556850724 fix(colorscheme): try .lua files in 'rtp' before .vim files in 'pp'
This ensures that colorschemes in 'rtp' are tried before ones in 'pp',
because some colorschemes in 'pp' may not work if not added to 'rtp'.

This also match the current documentation better.

(cherry picked from commit 237a6ed2ff)
2023-05-27 03:03:56 +00:00
zeertzjq
86a1e79ee2 fix(ui-ext): send title to newly-attached UI
(cherry picked from commit 43d66c0ebb)
2023-05-26 09:30:18 +00:00
zeertzjq
ceba495e88 fix(redraw): overwrite double-width char with virt_text properly
(cherry picked from commit e998bada7c)
2023-05-22 10:23:08 +00:00
Luuk van Baal
cbe9351f8b fix(highlight): remove unnecessary assignment to char_attr for 'spell'
(cherry picked from commit 889e0df9dc)
2023-05-22 09:08:16 +00:00
Null Chilly
2430e96da5 fix(api): nvim_get_hl should return default flag
(cherry picked from commit 5ba43c18e8)
2023-05-22 08:49:28 +00:00
Luuk van Baal
a01f8de1f0 fix(redraw): multibyte characters are wrapped at the end of a line
Problem:    Multibyte characters may be wrapped at the end of a line
            when 'statuscolumn' and 'spell' are set.
Solution:   Update line pointerdiff "v" before fetching the line pointer
            after evaluating 'statuscolumn'.
(cherry picked from commit 5fa5fff184)
2023-05-21 11:00:55 +00:00
github-actions[bot]
2be8c29406
[Backport release-0.9] fix(lsp): don't register didChangeWatchedFiles when capability not set (#23690)
fix(lsp): don't register didChangeWatchedFiles when capability not set

Some LSP servers (tailwindcss, rome) are known to request registration
for `workspace/didChangeWatchedFiles` even when the corresponding client
capability does not advertise support. This change adds an extra check
in the `client/registerCapability` handler not to start a watch unless
the client capability is set appropriately.

(cherry picked from commit 78510add5b)

Co-authored-by: Jon Huhn <huhnjon@gmail.com>
2023-05-20 08:01:52 +02:00
zeertzjq
87c44c7a0b fix(messages): ensure msg_grid is at top at more prompt
(cherry picked from commit 5b9d1a972b)
2023-05-17 13:06:46 +00:00
zeertzjq
ae7db749b5 test: move most title tests to a separate file
This avoids running title tests twice unnecessarily.

(cherry picked from commit b6199f667b)
2023-05-11 02:58:36 +00:00
zeertzjq
e019371554 fix(api): don't change title when setting buffer in a window
(cherry picked from commit f2d97a3842)
2023-05-11 02:38:43 +00:00
zeertzjq
4e0cfe3805 fix(highlight): apply 'winblend' to NormalNC
(cherry picked from commit e33790d0f6)
2023-05-10 15:50:26 +00:00
zeertzjq
06bee06ee5 fix(redo): make redo of Lua mappings in op-pending mode work
(cherry picked from commit 5e9ef7b95b)
2023-05-10 09:51:31 +00:00
Luuk van Baal
59ee42d05e fix(tui): grid_clear properly clears the screen
Problem:    When setting a shell size smaller than the containing
            terminal window through `:winsize` or `:set lines/columns`
            the screen is not properly cleared.
Solution:   Clear the tui dimensions rather than the grid dimensions.
(cherry picked from commit 197827321a)
2023-05-09 19:29:14 +00:00
github-actions[bot]
1a104253df
[Backport release-0.9] fix(lsp): fix relative patterns for workspace/didChangeWatchedFiles (#23559)
fix(lsp): fix relative patterns for `workspace/didChangeWatchedFiles`

(cherry picked from commit 10f102a3a3)

Co-authored-by: Jon Huhn <huhnjon@gmail.com>
2023-05-09 18:23:22 +02:00
zeertzjq
152c07249e fix(statusline): bail out properly on negative row
(cherry picked from commit 89274f9221)
2023-05-08 08:25:22 +00:00
zeertzjq
bdb7c180b7 test: add more tests for :Man section extraction
(cherry picked from commit 3001d86aea)
2023-05-08 08:09:54 +00:00
zeertzjq
592e4459fa
Merge pull request #23503 from neovim/backport-23415-to-release-0.9
[Backport release-0.9] fix(tui): redraw on SIGWINCH even if size didn't change
2023-05-06 18:00:22 +08:00
github-actions[bot]
1b09bcef52
[Backport release-0.9] fix(treesitter): redraw added/removed injections properly (#23408)
fix(treesitter): redraw added/removed injections properly

When injections are added or removed make sure to:
- invoke 'changedtree' callbacks for when new trees are added.
- invoke 'changedtree' callbacks for when trees are invalidated
- redraw regions when languagetree children are removed

(cherry picked from commit b68157834a)

Co-authored-by: Lewis Russell <lewis6991@gmail.com>
2023-05-06 11:55:51 +02:00
zeertzjq
c464df84f7 fix(tui): redraw on SIGWINCH even if size didn't change
(cherry picked from commit 0f1b511f23)
2023-05-06 09:48:54 +00:00
zeertzjq
7c48810397
Merge pull request #23457 from neovim/backport-23456-to-release-0.9
[Backport release-0.9] fix(mouse): fix popup menu position check with winbar
2023-05-03 11:10:56 +08:00
mliszcz
106695d47e test(lsp_spec): fix unstable tests for set_defaults
In the `test_rpc_server` procedure, both `on_setup` and `on_init`
callbacks can run concurrently in some scenarios. This caused some CI
failures in tests for the LSP set_defaults feature.

This commit attempts to fix this by merging those two callbacks in the
impacted tests.

See: https://github.com/neovim/neovim/actions/runs/4553550710/attempts/1
(cherry picked from commit c2f5159987)
2023-05-03 02:43:23 +00:00
zeertzjq
56e0b425ea fix(mouse): fix popup menu position check with winbar
(cherry picked from commit e37fb2515d)
2023-05-03 02:29:39 +00:00
zeertzjq
61351adee8 fix(pum): don't position too far with resized parent grid
(cherry picked from commit 1fa6482faf)
2023-05-02 22:18:12 +00:00
zeertzjq
5fbe8409b5 fix(pum): fix missing scrollbar with 'rightleft'
(cherry picked from commit 3d1a9eeb1b)
2023-05-02 17:13:23 +00:00
zeertzjq
bbf600b7b5 fix(pum): fix missing rightmost column with 'rightleft'
(cherry picked from commit 97ac7e10c6)
2023-05-02 15:55:42 +00:00
zeertzjq
5267e7b07a fix(mouse): fix popup_setpos position check with ext_multigrid
(cherry picked from commit 50f6609032)
2023-05-02 07:25:59 +00:00
zeertzjq
20f5f4e916 fix(normal): make "g$" work properly with resized grid
(cherry picked from commit 088cdf69e3)
2023-05-02 04:28:44 +00:00
zeertzjq
5b158b9375 fix(drawline): make cursorlineopt=screenline work with resized grid
(cherry picked from commit 37b73cf14b)
2023-05-02 04:28:43 +00:00
zeertzjq
c693df02b3 fix(float): make bufpos work properly with resized parent grid
(cherry picked from commit 03e8b5fc91)
2023-05-02 04:28:43 +00:00
zeertzjq
11a0fc9644 vim-patch:9.0.1493: popup menu position wrong in window with toolbar
Problem:    Popup menu position wrong in window with toolbar.
Solution:   Take the window toolbar into account when positioning the popup
            menu. (closes vim/vim#12308)

4e1ca0d9a6

Fixed in the previous commit. Test only.

(cherry picked from commit aca226d728)
2023-05-02 03:59:44 +00:00
zeertzjq
756b74758d fix(pum): make :popup position correctly with float border
(cherry picked from commit fbaa278773)
2023-05-02 03:59:44 +00:00
zeertzjq
f5cf033314 fix(pum): position properly with ext_multigrid
(cherry picked from commit 239d19d908)
2023-05-02 03:46:37 +00:00
zeertzjq
5c30930fec fix(pum): show right-click menu above cmdline area
(cherry picked from commit 1d7172e925)
2023-05-02 03:36:07 +00:00